在PHP中使用变量作为函数名

30

可能是重复问题:
使用变量定义PHP函数

有没有一种方法可以使用变量作为函数名。

例如,我有一个变量

$varibaleA;

我想创建一个函数,例如:

function $variableA() {
}

所以这个函数可以在脚本的后面被调用。有人知道这是否可行吗?

谢谢


无论你为什么认为这是一个好主意,可能还有更好的解决方案。 - user557846
可能是重复的问题:使用变量定义PHP函数 或者 PHP:使用变量名定义函数 - mario
不是重复的问题。那个问题要求使用动态名称来定义函数 - 而不仅仅是使用变量。 - Ulad Kasach
你是否想要创建一个动态函数? - Cholthi Paul Ttiopic
正如@mario所说:$functionToCall = 'show__personalizer_'.$_GET['page'];,然后 $functionToCall() - London Smith
3个回答

32

如果想要声明一个带有变量但是任意名称的函数,除非使用 eval()include(),否则是不可能的。

我认为基于你想要做的事情,你需要在那个变量中存储一个匿名函数(如果你不是在 PHP 5.3+ 上使用,则使用 create_function()):

$variableA = function() {
    // Do stuff
};

你仍然可以像任何变量函数一样调用它,如下所示:

$variableA();

2
省点麻烦,注意在 } 后面加上 ; - Ulad Kasach

18
$x = 'file_get_contents';
$html = $x('http://google.com');

这在功能上等同于执行

$html = file_get_contents('http://google.com');

它们被称为可变函数,通常应避免使用,因为它们与变量变量相差太远。


3
你可以这样做:
$foo = function() {
    //..
};

然后:

$foo(); 

适用于 PHP 5.3 及以上版本


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接