ホームページ > バックエンド開発 > PHPチュートリアル > PHP関数のmethod_exists()とis_callable()の違い

PHP関数のmethod_exists()とis_callable()の違い

WBOY
リリース: 2016-06-13 13:17:19
オリジナル
884 人が閲覧しました

PHP関数のmethod_exists()とis_callable()の違い

PHP 関数の method_exists() と is_callable() の違いは何ですか? PHP のオブジェクト指向の設計プロセスでは、メソッドを呼び出すときに、メソッドが特定のクラスに属しているかどうかを判断する必要があることがよくあります。それに比べて、is_callable() 関数は、メソッドがより重要です。一部のメソッドは、最初の引数として文字列変数の形式でメソッド名を受け取り、クラス メソッドが存在し、呼び出すことができる場合に true を返します。クラス内のメソッドを呼び出せるかどうかを確認したい場合は、クラスのメソッド名の代わりに配列をパラメータとして関数に渡すことができます。配列には、最初の要素としてオブジェクトまたはクラス名が含まれ、2 番目の要素としてチェックされるメソッド名が含まれている必要があります。メソッドがクラスに存在する場合、関数は true を返します。

?

コード例:

?



  1. if?(?is_callable(?array (?$obj,?$method ?)?)?) ??
  2. { ??
  3. ????/*操作対象のコードセグメント*/??
  4. }??

?

is_callable() は、別のパラメーター (ブール値) を追加できます。このパラメーターが true に設定されている場合、関数は、指定されたメソッドまたは関数名の構文が正しいかどうかのみをチェックし、それが実際に存在するかどうかはチェックしません。 Method_exists() 関数のパラメーターは、オブジェクト (またはクラス名) とメソッド名です。指定されたメソッドがオブジェクトのクラスに存在する場合、true

を返します。

コード例:

?



  1. if?(?method_exists(?$obj,? $method?)?) ??
  2. { ??
  3. ????/*操作対象のコードセグメント*/??
  4. }??

?

php 関数の method_exists() と is_callable() の違いは、php5 では、メソッドの存在は、そのメソッドが呼び出せることを意味しないことです。プライベート、プロテクト、パブリック タイプのメソッドの場合、method_exits() は true を返しますが、is_callable() は、メソッドが存在し、アクセスできるかどうかを確認し、プライベート、プロテクト タイプの場合は false を返します。

http://www.souebooks.com/14.htm

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート