| ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot |
型演算子instanceof を使用して、 ある PHP 変数が特定の クラス のオブジェクトのインスタンスであるかどうかを調べます。 例1 クラスでの instanceof の使用法
<?php 上の例の出力は以下となります。 bool(true) bool(false) instanceof は、ある変数が 特定の親クラスを継承したクラスのオブジェクトのインスタンスであるかどうかを調べることもできます。 例2 継承したクラスでの instanceof の使用法
<?php 上の例の出力は以下となります。 bool(true) bool(true) あるオブジェクトが特定のクラスのインスタンスで ない ことを調べるには、 論理 否定 演算子 を使用します。 例3 instanceof を使用して、オブジェクトがクラスのインスタンスで ない かどうかを調べる方法
<?php 上の例の出力は以下となります。 bool(true) 最後に、instanceof は、ある変数が特定の インターフェイス を実装したクラスのオブジェクトのインスタンスであるかどうかも調べることができます。 例4 クラスでの instanceof の使用法
<?php 上の例の出力は以下となります。 bool(true) bool(true) 通常、instanceof ではリテラルのクラス名を使用しますが、 別のオブジェクトや文字列変数を使用することもできます。 例5 変数を用いた instanceof の使用法
<?php 上の例の出力は以下となります。 bool(true) bool(true) bool(false)
instanceof は、もし確かめる変数がオブジェクトでなくてもエラーになりません。単に
例6 instanceof での他の変数の調べかた
<?php 上の例の出力は以下となります。 bool(false) bool(false) bool(false) PHP Fatal error: instanceof expects an object instance, constant given 注意すべき落とし穴があります。PHP 5.1.0 より前のバージョンでは、 instanceof は、クラス名が存在しない場合に __autoload() をコールしていました。 さらに、クラスが読み込めなかった場合に致命的なエラーが発生していました。 この問題の回避策としては、動的なクラス参照を使用するか、 クラス名を含む文字列変数を使用します。 例7 PHP 5.0 における、クラス名検索時の致命的エラーの回避策
<?php 上の例の出力は以下となります。 bool(false) instanceof 演算子は PHP 5 から使用可能になりました。 それ以前には is_a() が使用されていましたが、 現在は is_a() は推奨されておらず、 instanceof の使用が推奨されています。 PHP 5.3.0 以降、is_a() は非推奨ではなくなったことに注意しましょう。 get_class() および is_a() も参照ください。 |
![]() |
各種マニュアル:
PHPマニュアル |
PEARマニュアル |
Smarty(英語)マニュアル |
PHP-GTKマニュアル |
「型演算子」をGoogle検索
|