В общем вкратце понадобилось создание определённого количества функций исходя из определённого числа. Допустим число 5 надо создать 5 функций.возможно ли такое на автомате?
Код (PHP): for ($i = 0; $i < 5; $i++) { $fname = 'fn'.$i; $$fname = function($var) { echo $var; }; } $fn4('preved'); 5 одинаковых функций!
vs, Это только в >= 5.3 <матное слово>: Код (PHP): $array_functs=array(1=>'$param1,$param2',2=>'$param1'); $funct=array(); $return=''; foreach($array_functs as $key => $value) { if($key==1) { $return='($param1===1)?$param2:$param1.$param2'; } else if($key==2) { $return='$param1'; } $funct[$key]=create_function($value,'return'.$return.';'); } echo $funct[1](1,'param1'); //param1 echo $funct[2](1); //1 Тут можно намудрить так, что потом сам даже не поймешь как)))) Даже не хочу суда лезть. Вообще нет годности в этом)))) Ну да на eval тоже, только там еще <матное слово> =)
нет они не одинаковые будут. А что с eval() то или это всё на что ты способен?Реальный пример igordata
Да мне то все равно) Я в общем смысле говорю, у меня то новые версии) jei, ты же профессионал... Код (PHP): $array_functs=array( 'f1'=>array( 'param'=>'$param1,$param2', 'return'=>'if($param1===1) {return $param2;}else{return $param1.$param2;}'), 'f2'=>array( 'param'=>'$param1', 'return'=>'return $param1;')); $functions=''; foreach($array_functs as $key => $value) { $functions.='function '.$key.'('.$value['param'].'){'.$value['return'].'}'; } eval(''.$functions.';'); echo f1(1,'return'); //return Да так - то вариантов можно придумать массу=)