在静态成员变量中调用函数

时间:2016-04-03 00:54:11

标签: php

我试图在静态类变量中调用函数,但是我遇到了一些问题

这是最小的例子

nil

它给了我以下输出

 #!/usr/bin/php
<?php

class Foo {
  public static $func;

  public static function call() {
    echo "calling func\n";
    if ( is_callable(self::$func))
      self::$func();
    else echo "no call\n";
  }
}


Foo::call();

Foo::$func = function() { echo "hello\n"; };

Foo::call();

?>

1 个答案:

答案 0 :(得分:1)

self::$func的引用存储在变量中:

public static function call() {
    echo "calling func\n";

    $callable = self::$func; // store in a variable
    if ( is_callable($callable))
        $callable();
    else
        echo "no call\n";
}