在 PHP 中,instanceof
關鍵字用于檢查一個對象是否屬于某個類或接口的實例。多態是指允許對象以它們所屬的基類或接口的形式呈現,同時保留其特定類的行為。在多態中,你可以使用 instanceof
來檢查對象是否實現了某個特定的接口或繼承了某個類。
以下是一個簡單的示例,說明如何在多態中使用 instanceof
:
interface Animal {
public function speak();
}
class Dog implements Animal {
public function speak() {
return "Woof!";
}
}
class Cat implements Animal {
public function speak() {
return "Meow!";
}
}
function makeAnimalSpeak(Animal $animal) {
echo $animal->speak();
}
$dog = new Dog();
$cat = new Cat();
makeAnimalSpeak($dog); // 輸出 "Woof!"
makeAnimalSpeak($cat); // 輸出 "Meow!"
在這個示例中,我們定義了一個名為 Animal
的接口,它有一個 speak()
方法。然后我們創建了兩個類 Dog
和 Cat
,它們都實現了 Animal
接口。我們還定義了一個名為 makeAnimalSpeak
的函數,它接受一個 Animal
類型的參數,并調用其 speak()
方法。
當我們分別傳遞 $dog
和 $cat
對象給 makeAnimalSpeak
函數時,多態允許我們以 Animal
類型處理這些對象。在函數內部,我們使用 instanceof
關鍵字來確保對象實現了正確的接口,并調用其 speak()
方法。這使得我們可以輕松地處理不同類型的動物,而無需更改函數內部的代碼。