PHPのis_a()関数とinstanceofの違いは何ですか?

青灯夜游
リリース: 2023-04-05 14:08:01
オリジナル
3313 人が閲覧しました

PHP の is_a() 関数と instanceof 演算子の機能は似ていますが、両者の違いは何ですか?次の記事では、is_a()関数とinstanceofについて簡単に理解するとともに、is_a()関数とinstanceofの違いについて紹介しますので、ご参考になれば幸いです。 [ビデオチュートリアルの推奨: PHP チュートリアル]

##PHP is_a() 関数 # #is_a() 関数は、指定されたオブジェクトが指定されたクラスに属しているかどうかを確認する PHP の組み込み関数であり、指定されたクラスが指定されたオブジェクトの親クラスの 1 つであるかどうかも確認します。

基本構文:

is_a( $object, $class_name, $allow_string )
ログイン後にコピー

パラメータ: is_a() 関数は次の 3 つのパラメータを受け入れることができます

●オブジェクト: 使用しますテストオブジェクトを保存します。 ●Class_name: クラス名を保存するために使用されます。

●Allow_string: 設定値が False の場合、文字列クラス名をオブジェクトとして使用することはできません。

戻り値:

オブジェクトが指定されたクラスに属している場合、またはこのクラスがその親クラスの 1 つである場合、is_a() 関数は True を返し、それ以外の場合は False 値を返します。

コード例を通じて is_a() 関数について学びましょう。

<?php  
class hello {  
    var $store = &#39;Hello PHP!&#39;;  
}  
    
$PHP= new hello();  
    
// 检查$PHP是否是hello类的对象
if (is_a($PHP, &#39;hello&#39;)) {  
    echo "Yes";  
}  
    
?>
ログイン後にコピー
出力:

Yes
ログイン後にコピー
ログイン後にコピー

PHP インスタンスオブ演算子

PHP でインスタンスオブ演算子を使用して、オブジェクトがインスタンス化されたクラスのインスタンス。

基本構文:

$a instanceof MyClass
ログイン後にコピー

オペランド: instanceof 演算子には次の 2 つのオペランドが含まれます

● $a: を表します。物体。 ● MyClass:クラス名を示します。

戻り値: オブジェクトが指定されたクラスに属している場合、またはこのクラスがその親クラスの 1 つである場合は True を返し、それ以外の場合は False 値を返します。

コード例を通じて、instanceof 演算子について学びましょう。

<?php  
class hello {  
    var $store = &#39;Hello PHP!&#39;;  
}  
    
$PHP= new hello();  
    
// 检查$PHP是否是hello类的对象
if ($PHP instanceof hello) {  
    echo "Yes";  
}  
?>
ログイン後にコピー

出力:

Yes
ログイン後にコピー
ログイン後にコピー

is_a() 関数と instanceof 演算子の違い

● is_a() はfunction、instanceof は言語構造です。 is_a() 関数は、関数呼び出しを実行するためのすべてのオーバーヘッドがあるため、大幅に遅くなります。 #関数コールバック (array_map など) の場合、instanceof は関数ではなく言語構造体であるため、コールバックとして使用できません。ただし、is_a() 関数ではコールバックを使用できます。

●InstanceOf での直接クラス名の使用時間は、is_a() 関数よりも短くなります。

例:

//语法短(比较)
$a instanceof MyClass
is_a( $a, MyClass::class )
ログイン後にコピー

●is_a() はパラメータ 1 としてオブジェクトを受け取り、パラメータ 2 として文字列を受け取る関数ですが、instanceof はパラメータ 1 としてオブジェクトを受け取り、クラス名を渡すことができます。 、オブジェクト インスタンス、またはクラス識別子 (引用符のないクラス名) を引数 2 として指定します。

is_a() の例:

//只有这样才能调用它
is_a($object,$string);
ログイン後にコピー

instanceof example:

//对象实例      
$object instanceof $otherObject; 
//字符串类名
$object instanceof $string;
//类的标识符
$object instanceof ClassName;
ログイン後にコピー

上記がこの記事の全内容です, 皆様の勉強のお役に立てれば幸いです。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !

以上がPHPのis_a()関数とinstanceofの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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