【发布时间】:2013-02-01 20:47:11
【问题描述】:
我不熟悉在类中使用静态方法和属性。我想做的是运行variable function,但不能使用:
self::$static_var()
PHP 抛出一个通知:
Undefined variable: static_var
我必须首先像这样分配给一个局部变量:
$local_var = self::$static_var;
那我就可以了
$local_var();
这是一些示例代码。 我不明白为什么 Test 1 不起作用。我必须进行 Test 2 以获得所需的功能。 问题: 为什么是 Test 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);
}
}
【问题讨论】:
-
试试
call_user_func(self::$static_var, $passed_var) -
对不起,@Shikiryu。我为你编辑了问题。
标签: php function variables static