У меня есть переменная типа $string = "blah";
Как создать функцию, которая имеет значение переменной как имя? Возможно ли это в PHP?
Подобно function $string($args){ ... }
или что-то еще, и иметь возможность называть ее так:
blah($args);
Это не похоже на отличный дизайн, возможно, стоит переосмыслить его, но …
Если вы используете PHP 5.3, вы можете использовать анонимную функцию.
<?php $functionName = "doStuff"; $$functionName = function($args) { // Do stuff }; $args = array(); $doStuff($args); ?>
это может быть не очень хорошая идея, но вы можете сделать что-то вроде этого:
$string = "blah"; $args = "args" $string = 'function ' . $string . "({$args}) { ... }"; eval($string);
Вы можете вызвать функцию по имени, хранящемуся в переменной, и вы также можете назначить функцию переменным и вызвать ее с помощью переменной. Если это не то, что вы хотите, объясните больше.
Попробуйте call_user_func_array()
Ссылка на php.net