
Полностью согласен.Автор оригинала: 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 {
	...
         ...
} Файл парсится регексом, получаем массив в котором каждый элемент - текст функции. Затем убиваем те, что данному скрипту не нужны , конкатим и сохраняем в том же кэше. При подкачке eval этой переменной и определены те функции что нужны для работы без затрат на парс функций не нужных. В итоге и функции все в одном месте и лишнего времени не тратится. Imho, думать о производительности не самое плохое занятие.
 Файл парсится регексом, получаем массив в котором каждый элемент - текст функции. Затем убиваем те, что данному скрипту не нужны , конкатим и сохраняем в том же кэше. При подкачке eval этой переменной и определены те функции что нужны для работы без затрат на парс функций не нужных. В итоге и функции все в одном месте и лишнего времени не тратится. Imho, думать о производительности не самое плохое занятие.имхо твое неправильное.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 процент.
Вот общие цифры я и хотел от тебя услышать.
