我不熟悉在类中使用静态方法和属性。我想要做的是运行一个变量函数,但不能使用:
self::$static_var()
PHP 抛出一个通知:
Undefined variable: static_var
我必须首先分配给一个局部变量,如下所示:
$local_var = self::$static_var;
那我可以做
$local_var();
这是一些示例代码。我不明白为什么测试 1不起作用。我必须进行测试 2才能获得所需的功能。 问题:为什么测试 1不起作用?
测试 1 - 不起作用
X::do_stuff('whatever');
class X {
public static $static_var = 'print_r';
public static function do_stuff($passed_var) {
self::$static_var($passed_var);
}
}
测试 2 - 有效
X::do_stuff('whatever');
class X {
public static $static_var = 'print_r';
public static function do_stuff($passed_var) {
$local_var = self::$static_var;
$local_var($passed_var);
}
}