ホームページ  >  記事  >  バックエンド開発  >  注013 PHPにおけるis_callable()とmethod_exists()の関数の違い

注013 PHPにおけるis_callable()とmethod_exists()の関数の違い

黄舟
黄舟オリジナル
2016-12-26 10:03:151998ブラウズ

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) を参照してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。