アプローチ1は機能しますが、アプローチ2は機能しません-致命的なエラーが発生する可能性があります(関数名は...の文字列でなければなりません)
# Approach 1
$function = self::$function and $function();
# Approach 2
self::$function and self::$function();
これは少し奇妙ではありませんか?誰かが説明してくれることを願っています。
編集:コンテキストを提供するために、クラス全体を次に示します。
class Example
{
static $function;
static function method()
{
self::$function();
}
}
function callback() {}
Example::$function = 'callback';
Example::method();