クラスで静的メソッドとプロパティを使用するのは初めてです。私がやろうとしているのは、変数関数を実行することですが、使用できません:
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);
}
}