Как поместить строку PHP в имя функции?
for ($i=1;$i<10;$i++) { function my_function_$i() { //Parse error: syntax error, unexpected T_VARIABLE, expecting '(' include($i.'.php'); } }
ОБНОВЛЕНИЕ:
ОК.закрыл этот вопрос, буду учиться дальше.
что-то совершенно не так с вашей архитектурой, если вы сталкиваетесь с таким вопросом. Кажется, вы не понимаете, для чего нужны функции.1005 * но one function my_function($i)
my_function($i)
Проверьте это - может быть, то, что вы ищете
http://php.net/manual/en/function.create-function.php
с этой страницы:
<?php $newfunc = create_function('$a,$b', 'return "ln($a) + ln($b) = " . log($a * $b);'); echo "New anonymous function: $newfunc\n"; echo $newfunc(2, M_E) . "\n"; // outputs // New anonymous function: lambda_1 // ln(2) + ln(2.718281828459) = 1.6931471805599 ?>
Во-первых, это ужасная вещь.Попробуйте использовать замыкания , или create_function(), или передать $i в качестве аргумента.
create_function()
$i
Во-вторых, единственный способ сделать это (ради бога, не ) с eval():
eval()
for ($i = 1; $i < 10; $i++) { eval("function my_function_$i() { include('$i.php'); }"); }
Может быть, вы можете использовать eval для этого:
for ($i=1;$i<10;$i++) { eval('function myfunc_'.$i.'(){echo '.$i.';}'); } myfunc_5(); //Output //5