php - 函数的神奇函数 __call() ?

标签 php function magic-function

php 中的神奇函数 __call() 在类中使用。除了函数之外,还有类似的神奇函数吗?就像 __autoload() 用于函数一样。

例如这样的事情

function __call($name, $arguments) {
    echo "Function $name says {$arguments[0]} ";
}
random_func("hello");

最佳答案

不,我不认为存在这样的神奇功能。

解决此问题的一种方法是将函数放入静态类中,并添加 __callStatic该类的魔术方法(恐怕仅适用于 PHP 5.3):

class Func
 {
   /**  As of PHP 5.3.0  */
   public static function __callStatic($name, $arguments)
     {
    // Note: value of $name is case sensitive.
    echo "Calling static method '$name' "
         . implode(', ', $arguments). "\n";

  }
 }

Func::random_func("hello!");

对于 PHP < 5.3,您可以执行相同的操作,但您必须实例化一个对象并使用 __call 魔术方法。

$Func = new Func;
$Func->random_func("hello!");

关于php - 函数的神奇函数 __call() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3456763/

相关文章:

php - PHP 中 empty() 的神奇功能是什么?

php - 如何通过Cloudsearch搜索经常变化的值?

php - 具有相同 html 的两个页面呈现不同的效果

php - 如何响应来自 `exec` 生成的进程的提示?

c# - 以对象和成员名称作为参数的通用函数?

php - 我什么时候/应该在 PHP 中使用 __construct()、__get()、__set() 和 __call()?

php - 命名空间不适用于 php 中的 __autoload 魔法函数

javascript - 如何在设计模式打开的情况下为父 div 内新创建的 div 提供 id

Mysql函数编码

python - 如何从我的 Python 主函数返回多个字典