Полностью согласен.Автор оригинала: Oleg Marchuk
http://us2.php.net/manual/en/function.eval.php
Можем пройтись по коментариям, если хочешь.
Итак:
Плохой стиль - не очевидно, что происходит в eval и откуда оно берется
Нарушает концепцию структурного прграммирования
Не работает, как ожидается с переменными и конструкциями (break, continue, globals)
Не работает с сылками
Возвращает false при не удаче
Плохо отлаживать код
Проблема безопасности: в eval передается переменная. Если ты ее еще и строишь, основываясь на внешних данных - капец тебеМне извесны люди, которые пишут код и оставляют после себя такие backdoor (для контроля оплаты).
?>file_content<?
Originally posted by Screjet
Повторю открытым текстом:
да мне и так в общем-то ясно, непонятно только зачем инициировать класс my методом класса mod и притом обязательно статическим вызовом,>не могу себе представить необходимость такой конструкции, почемуто ...
Запусти пример выше и все станет ясно. А если не станет ясно, значит рано еще об этом задумываться. [/B]
<?php
class mod {
var $var = 'mod';
function init(&$obj){
$obj->var1 = $obj->var.$obj->var1;
//да ещё тут можно использовать и $this->var, если вдруг надо
}
}
class my {
var $var = 'my';
var $var1 ='my1';
function my($mn){
$mod=new $mn();
$mod->init($this);
}
}
$t=new my("mod");
print_r($t);
?>
<?php
clearstatcache();
$Gsv_statist['start']=microtime();
include_once is_file ('./includes/options.php') ? './includes/options.php' : exit('file not found');
$Gsv_statist['middle']=microtime();
//$h=fopen('./cache/test.swp', 'w+');
//fwrite($h, serialize($GLOBALS));
//fclose($h);
$Gsv=unserialize(file_get_contents(is_file ('./cache/test.swp') ? './cache/test.swp' : exit('file not found')));
foreach ($Gsv as $key => $value) $GLOBALS['Gsv_'.$key]=$value;
unset ($Gsv);
$Gsv_statist['end']=microtime();
list($usec_start, $sec_start) = explode(" ",$Gsv_statist['start']);
list($usec_end, $sec_end) = explode(" ",$Gsv_statist['middle']);
echo ((float)$usec_end + (float)$sec_end)-( (float)$sec_start+(float)$usec_start), '<hr>';
list($usec_start, $sec_start) = explode(" ",$Gsv_statist['middle']);
list($usec_end, $sec_end) = explode(" ",$Gsv_statist['end']);
echo ((float)$usec_end + (float)$sec_end)-( (float)$sec_start+(float)$usec_start);
?>
Я прикручивал к своим скриптам кеширование результатов SQL-запросов, по пути стало интересно даст ли выигрыш подключение всяких переменных и массивов таким же образом. Проверил - выигрыш есть. Сейчас все данные которые не зависят от параметров запроса загружаются таким вот макаромOriginally posted by Фанат
che
а можно спросить - зачем тебе эти тесты?
if (is_file('./cache/index.swp')) {
extract(unserialize(file_get_contents('./cache/test.swp')));
eval ($Gsv_functions);
unset $Gsv_functions;
}
else {
...
...
}
имхо твое неправильное.Imho, думать о производительности не самое плохое занятие.
выскажемся.может выскажитесь по поводу.
Согласен. С худым концом о женщинах только думать и остается.Originally posted by Фанат
... на худой конец. О женщинах.
А расскажи мне поподробнее про обработку ошибок при объявлении функций.
выскажемся.
Обработку ошибок твой евал делает в обрабатываемом коде?
На SQL запросах в среднем в два раза. Ты мальчик взрослый, в проценты сам переведешь. Надеюсь сам сможешь понять что зависит от запросов.
Да, и реальный прирост производительности тоже интересно узнеть.
Не эти ламерские циферки, а реально, в процентах от общеих затрат на обработку запроса.
Стоит не везде, да и как они будут кэшировать результаты SQl запросов, данные? Про кеширование на стороне SQL сервера не надо, в курсе. Но зачем лишнее обращение если всю работу скрипта можно свести к 2-3 чтениям файлов? Даже если в нем куча инклудов и запросов к базам?Originally posted by Oleg Marchuk
che
А что, кешируешие сервера отменили?
Zend, memcache,...
о!На SQL запросах в среднем в два раза
К сожалению, я достоточно взрослый для того, чтобы понимать, что если операция отнимает 1 процент от общего времени задачи, то ускорение ее в 2 раза ускорит само приложение на 1 процент.Ты мальчик взрослый, в проценты сам переведешь.
Не тормози, эвалом я объявляю функции, те самые, про обработку ошибок которых ты мне хотел рассказатьOriginally posted by Фанат
о!
так ты научился евалом SQL запросы исполнять???
Снимаю шляпу и безоговорочно признаю твою крутость.
Наконец то речь не мальчика но мужа. Только считаешь ты не правильно. Хотя в верном направлении. Пошел считать в процентах всё и вся.
К сожалению, я достоточно взрослый для того, чтобы понимать, что если операция отнимает 1 процент от общего времени задачи, то ускорение ее в 2 раза ускорит само приложение на 1 процент.
Вот общие цифры я и хотел от тебя услышать.