instanceof キーワードとは何ですか?
instdnceof キーワードは PHP5 で新たに追加されました。このキーワードを使用して、 オブジェクト がクラスのインスタンスであるか、クラスのサブクラスであるか、または特定のインターフェイスを実装しているかを判断し、対応する操作を実行します。場合によっては、クラスが特定の型であるか、または特定のインターフェイスを実装しているかを判断する必要があります。このタスクには、instanceofoperatorが最適です。 instanceof 演算子は、インスタンスが特定の型であるかどうか、インスタンスが特定の型を継承しているかどうか、インスタンスまたはその祖先クラスが特定のインターフェイスを実装しているかどうかという 3 つのことをチェックします。たとえば、manager という名前のオブジェクトが Employee クラスのインスタンスであるかどうかを知りたいとします。
$manager = new Employee(); … if ($manager instanceof Employee) echo "Yes";
注意すべき点が 2 つあります。まず、クラス名には区切り文字 (引用符) がありません。区切り文字を使用すると、構文エラーが発生します。次に、比較が失敗した場合、スクリプトは実行を終了します。 instanceof キーワードは、複数のオブジェクトを同時に操作する場合に特に便利です。たとえば、関数を繰り返し呼び出しても、オブジェクトの種類に基づいて関数の動作を調整したい場合があります。この目標を達成するには、case ステートメントと instanceof キーワードを使用します。
class test{} class test{} class testChilern Extends test{} $a = new test(); $m = new test(); $i = ($m instanceof test); if($i) echo '$m是类test的实例!<br />'; // get this value switch ($a instanceof test){ case true : echo 'YES<br />'; break; case false : echo 'No<br />'; //get this value break; } $d=new testChilern(); if($d instanceof test)echo '$d是类test的子类!<br />'; // get this value
php
のinstanceofの機能は何ですか? 機能: (1) オブジェクトが特定のクラスのインスタンスであるかどうかを判断します。 (2) オブジェクトが特定のインターフェイスを実装しているかどうかを判断します。
1回目の使用法:
<?php $obj = new A(); if ($obj instanceof A) { echo 'A'; }
2回目の使用法:
<?php interface ExampleInterface { public function interfaceMethod(); } class ExampleClass implements ExampleInterface { public function interfaceMethod() { return 'Hello World!'; } } $exampleInstance = new ExampleClass(); if($exampleInstance instanceof ExampleInterface){ echo 'Yes, it is'; }else{ echo 'No, it is not'; } ?>
出力結果: はい、そうです
さらに、instanceofとis_subclass_of()の違いに注意してください。コードを参照してください:
<?php class Foo { public $foobar = 'Foo'; public function test() { echo $this->foobar . "\n"; } } class Bar extends Foo { public $foobar = 'Bar'; } $a = new Foo(); $b = new Bar(); echo "use of test() method\n"; $a->test(); $b->test(); echo "instanceof Foo\n"; var_dump($a instanceof Foo); // TRUE var_dump($b instanceof Foo); // TRUE echo "instanceof Bar\n"; var_dump($a instanceof Bar); // FALSE var_dump($b instanceof Bar); // TRUE echo "subclass of Foo\n"; var_dump(is_subclass_of($a, 'Foo')); // FALSE var_dump(is_subclass_of($b, 'Foo')); // TRUE echo "subclass of Bar\n"; var_dump(is_subclass_of($a, 'Bar')); // FALSE var_dump(is_subclass_of($b, 'Bar')); // FALSE ?>
出力結果 (PHP 5.4.4):
use of test() method Foo Bar instanceof Foo bool(true) bool(true) instanceof Bar bool(false) bool(true) subclass of Foo bool(false) bool(true) subclass of Bar bool(false)
以上がPHPのinstanceofキーワードとは何ですか?それの使い方?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。