ホームページ  >  記事  >  バックエンド開発  >  PHPのmethod_exists()関数とis_callable()関数の違いの分析

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

WBOY
WBOYオリジナル
2016-07-25 08:58:261784ブラウズ
この記事では、PHP の method_exists() 関数と is_callable() 関数の違いを紹介します。必要な方は参考にしてください。

PHP関数のmethod_exists()とis_callable()の違いを理解していますか? PHP のオブジェクト指向設計プロセスでは、メソッドを呼び出すときに、メソッドが特定のクラスに属しているかどうかを判断する必要があることがよくあります。メソッドとしては、method_exists() や is_callable() があります。

対照的に、 is_callable() 関数はより高度です。この関数は、最初のパラメーターとしてメソッド名を文字列変数の形式で受け取り、クラス メソッドが存在し、呼び出すことができる場合に true を返します。 クラス内のメソッドを呼び出せるかどうかを確認したい場合は、クラスのメソッド名の代わりに配列をパラメータとして関数に渡すことができます。 配列には、最初の要素としてオブジェクトまたはクラス名が含まれ、2 番目の要素としてチェックされるメソッド名が含まれている必要があります。メソッドがクラスに存在する場合、関数は true を返します。

ここまで述べたので、次の例を見てください。

リーリー

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

例:

リーリー

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

これら 2 つの機能の違いを皆さんに理解していただければ幸いです。



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