is_callable()の役割
私は最近is_callable()メソッドに触れました。以前は、関連する論理処理を実行するためにmethod_exissts()メソッドを使用していました。 ) 今日、この 2 つのメソッドには大きな類似点があることがわかりました。
is_callable() メソッドの構文構造は次のとおりです:
bool is_callable ( callable $name [, bool $syntax_only = false [, string &$callable_name ]] )
この関数は、変数の内容が正しいかどうかを検証します。関数として呼び出すことができます。パラメーター 1 の名前は、チェックする必要があるコールバック関数の名前です。オブジェクト メソッドの場合、パラメーター 1 として配列が必要です。このときのパラメーターは次の構造にする必要があります:
array (クラス インスタンス, メソッド) name)
パラメータ 2 syntax_only はブール値です。true に設定すると、この関数は name が関数またはメソッドの構文であるかどうかを検証するだけで、関数が存在するかどうかは実際には検出しません。
パラメータ 3 callable_name は、「呼び出し可能な名前」を受け取るために使用され、通常の関数は関数名を返し、クラス内のメソッドは someClass::someMethod の形式で文字列を返します。
is_callable() と method_exists() の違い
method_exists() Method_exists() 関数のパラメータは、オブジェクト (またはクラス名) とメソッド名です。指定されたメソッドがオブジェクトのクラスに存在する場合、関数は返します。真実。
2 つの違いは次のとおりです:
php5 では、メソッドの存在は、それを呼び出すことができることを意味しません。プライベート、プロテクト、パブリック タイプのメソッドの場合、method_exits() は true を返しますが、is_callable() は存在するかどうかを確認し、プライベート、プロテクト タイプの場合は false を返します。
上記は、PHP の is_callable() と method_exists() の関数の違いに関する Note 013 の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) を参照してください。