如何根据定义的命名常量创建动态函数名称?php定义命名常量作为函数名称
如:
define('NAME1','func1');
function NAME1($arg) {
echo "function 1 $arg\n";
print __FUNCTION__." in ".__FILE__." at ".__LINE__."\n";
};
NAME1("helllo");
这个回声函数的名称为 “NAME1” - 它为什么FUNC1?
如何根据定义的命名常量创建动态函数名称?php定义命名常量作为函数名称
如:
define('NAME1','func1');
function NAME1($arg) {
echo "function 1 $arg\n";
print __FUNCTION__." in ".__FILE__." at ".__LINE__."\n";
};
NAME1("helllo");
这个回声函数的名称为 “NAME1” - 它为什么FUNC1?
,我能想到的最接近的事就是用PHP 5.3 anonymous functions(除使用eval
)
define('NAME1', 'my_function');
$func_name = NAME1;
$$func_name = function($arg) {
// Your code
};
$my_function('test');
丑。不是吗? :) – Nemoden 2011-06-07 03:18:01
你不能做到这一点。
this echos function name as "NAME1" - why is it not func1?
,因为你定义的函数名作为NAME1
。
常量和函数具有单独的标识符查找表。 – mario 2011-06-07 03:21:09
设计方面,这看起来像一个坏主意™。什么是用例? – deceze 2011-06-07 03:32:25