带括号的 PHP 变量?

3

我不理解这段代码:

$outputFunction($dst, $resized, $quality);

这不是一个函数 例如 myfunction()

这不是一个变量 例如 $variable = $variable2

那是什么?

这段代码在我下载的脚本中可以工作,但我无法弄清楚这段代码是如何工作的...也许我只是累了或者其他什么原因...

谢谢。


3
这是一个“可变函数”,它与“可变变量”作用于值的方式类似,但作用于函数。 - Marc B
5个回答

9

$outputFunction保存了函数名称。因此,如果$outputFunction的值为"calculate",那么将调用calculate($dst, $resized, $quality)函数。


1
我喜欢这个网站!!免费的专业知识,即刻拥有! - user977150
我不明白为什么要使用变量函数,为什么不能直接使用函数的真实名称?例如,为什么要使用 $outputFunction? - user977150
好的,不用回答了,我已经想通了 :-D - user977150
变量函数非常有用的一个很好的例子是CMS系统Drupal,它允许模块(插件/扩展)“挂钩”到CMS系统的工作流程中。这是通过让CMS系统调用模块实现的函数来完成的。函数名称始终以实现该函数的模块的名称开头,这就是变量函数名称派上用场的地方,因为它们需要根据模块名称“即时”确定。 - sbrattla

3

除了sbrattla的回答之外,您还可以在PHP 5.3(我想)中定义匿名函数:

$var = function($a) { /* do something */ return $b; }
echo $var(123);

1
在 PHP 中你可以这样做:
$outputFunction = 'myFunction';
$outputFunction(args);

正常调用函数时它可以工作

可变函数


1

0

字符串应该在几行之前初始化。您可以将其视为函数指针,允许更改执行的方法。

Php将识别您的语法,并启动命名为字符串中的函数(如果需要计算,则为计算函数)。


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