PHPのinstanceofが何かと簡単なサンプルコードで解説

15 回閲覧されました

みなさんこんにちは、jonioです。

今回はinstanceofが何かと簡単なサンプルコードで解説します。

Laravelの無料学習サイトを作りました

Laravelを勉強したい人向けの無料の学習サイトを作りました。

ここからリンクに飛べますのでぜひ利用してください。

instanceofとは

簡単に言うと特定のクラスの変数かを調べる為の演算子です。

コードの書き方は下記になります。

$object instanceof クラス名

簡単なサンプルコードで理解を深めます。

サンプルコード

下記のコードで考えます。

<?php
class Product {
    public $name;
    
    public function __construct($name) {
        $this->name = $name;
    }
}

function printProductName($item) {
    if ($item instanceof Product) {
        echo "商品名: " . $item->name;
    } else {
        echo "これは商品ではありません";
    }
}

$product = new Product("りんご");
$notProduct = "ただの文字列";

printProductName($product);    // 商品名: りんご
printProductName($notProduct); // これは商品ではありません

18行目でインスタンスを生成した時に5行目〜7行目のコンストラクタが動作します。

11行目〜15行目で引数に対してinstanceofを使っています。

18行目はProductクラスのインスタンスなので12行目が動作します。

それに対して19行目はProductクラスのインスタンスではないので14行目が動作します。

こんな感じで使います。