0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

お題は不問!Qiita Engineer Festa 2023で記事投稿!

【PHP】特定のクラスであるかを型演算子で判定して条件分岐させる

Posted at

変数に入っているインスタンスがどのクラスから作ったものかで、処理を分岐させたいことがあるかと思います。

その場合、型演算子 instanceof を使うと良いです。

instanceofは、対象のインスタンスがどのクラスかをbooleanで判定してくれる演算子です。
具体的な使い方としては、以下です。
対象のクラス名と比較して、同じクラスからできたインスタンスの場合、trueを返します。

// $objectはインスタンスが入っている変数
// TargetClassはクラス名
$object instanceof TargetClass

では、具体的に本記事のタイトルでもある、条件分岐させる例を以下に示します。
例えば、アカウントがユーザー(User)と管理者(Admin)の2種類があるとします。
その2つのクラスから作ったインスタンスがあった場合、
どちらかによって処理を分岐させたい場合は以下のようにします。

Class User
{
}

Class Admin
{
}

$account = new User();

if ($account instanceof User) {
    echo 'user';
} else {
    echo 'admin';
}
// => user


$account = new Admin();

if ($account instanceof User) {
    echo 'user';
} else {
    echo 'admin';
}
// => admin

横並びでいくつか種類が存在するアカウントなどは、モデルクラスを複数作る設計もあるかと思います。
その場合、どのモデルクラスのインスタンスかを判定して処理を切り替える場合は、
instanceofを使う方法が有効な手段の1つかと思います。

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?