【问题标题】:A PHP variable with parentheses?带括号的 PHP 变量?
【发布时间】:2011-11-30 03:16:37
【问题描述】:

我不明白这段代码:

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

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

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

这是什么?

代码在我下载的脚本中工作,我只是不知道那段代码是如何工作的......也许我只是累了或其他什么......

谢谢。

【问题讨论】:

  • 它是一个“变量函数”,它适用于函数,就像“变量变量”适用于值一样。

标签: php variables parentheses


【解决方案1】:

$outputFunction 保存函数的名称。因此,如果 $outputFunction 持有值 "calculate",则调用 calculate($dst, $resized, $quality)

【讨论】:

  • 我喜欢这个网站!!立即免费获得专业知识!
  • 我不明白你为什么要使用变量函数,为什么不能只使用函数的真实名称?例如,而不是使用 $outputFunction?
  • 好吧,不用回答了,我已经想通了:-D
  • 可变函数有用的一个很好的例子是CMS系统Drupal,它允许模块(插件/扩展)“挂钩”到CMS系统的工作流程中。这是通过让 CMS 系统调用模块实现的功能来完成的。函数名称总是以实现该函数的模块名称开头,这就是变量函数名称派上用场的地方,因为它们需要根据模块名称“动态”确定。
【解决方案2】:

要添加到 sbrattla 的答案,您还可以在 PHP 5.3 中定义匿名函数(我认为),所以

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

【讨论】:

    【解决方案3】:

    在 php 中你可以做类似的事情

    $outputFunction = 'myFunction';
    $outputFunction(args);
    

    它可以正常调用该函数

    variable functions

    【讨论】:

      【解决方案4】:

      这些是变量函数

      评估$outputFunction 以获得将应用操作数的函数的名称。

      an entire page dedicated to this topic in the PHP manual

      【讨论】:

        【解决方案5】:

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

        Php 会识别你的语法并启动你的字符串中命名的函数(如果你愿意,计算一个)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-04
          • 2012-11-05
          • 2013-10-26
          相关资源
          最近更新 更多