変数に入っているインスタンスがどのクラスから作ったものかで、処理を分岐させたいことがあるかと思います。
その場合、型演算子 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つかと思います。
参考