php将命名常量定义为函数名

时间:2011-06-07 03:11:21

标签: php function constants

如何根据定义的命名常量创建动态函数名?

例如:

define('NAME1','func1');

function NAME1($arg) {
    echo "function 1 $arg\n";
    print __FUNCTION__." in ".__FILE__." at ".__LINE__."\n";
};

NAME1("helllo");

这个回声函数名称为“NAME1” - 为什么它不是func1?

2 个答案:

答案 0 :(得分:4)

我能想到的最接近的事情是使用PHP 5.3 anonymous functions(使用eval除外)

define('NAME1', 'my_function');
$func_name = NAME1;
$$func_name = function($arg) {
   // Your code
};
$my_function('test');

答案 1 :(得分:1)

你做不到。

this echos function name as "NAME1" - why is it not func1?

因为您将函数名称定义为NAME1