PHP'de instanceof Operatörü ve OOP'de Kalıtım
instanceof operatörünü kullanırken kalıtımın özelliklerini inceleyelim.
Bir ana sınıfımız ve bir alt sınıfımız olsun:
<?php
// Ana sınıf:
class ParentClass
{
}
// Alt sınıf:
class ChildClass extends ParentClass
{
}
?>
Alt sınıfın bir nesnesini oluşturalım:
<?php
$obj = new ChildClass;
?>
Şimdi instanceof kullanarak nesnemizin ParentClass
sınıfına ve ChildClass sınıfına ait olup olmadığını kontrol edelim:
<?php
var_dump($obj instanceof ChildClass); // true yazdırır
var_dump($obj instanceof ParentClass); // yine true yazdırır
?>
Örnekte gördüğünüz gibi - instanceof operatörü
kontrol yaparken ana ve alt sınıflar arasında ayrım yapmaz.
Kafanız karışmasın - eğer nesne gerçekten ana sınıfa aitse,
elbette alt sınıfa ait olup olmadığının kontrolü
false döndürecektir:
<?php
$obj = new ParentClass; // ana sınıfın nesnesi
var_dump($obj instanceof ParentClass); // true yazdırır
var_dump($obj instanceof ChildClass); // false yazdırır
?>
User sınıfını oluşturun, genel (public) özellikleri
name ve surname olsun.
User sınıfından kalıtım alan ve
salary özelliği ekleyen Employee sınıfını yapın.
Genel özellikleri name ve population olan
City sınıfını yapın.
User sınıfından 3 nesne,
Employee sınıfından 3 nesne,
City sınıfından 3 nesne oluşturun ve
rastgele bir sırayla $arr dizisine yazın.
$arr dizisini bir döngüyle gezin ve
User sınıfına veya bu sınıfın alt sınıflarına
ait olan nesnelerin name özelliklerini ekrana sütun olarak yazdırın.
$arr dizisini bir döngüyle gezin ve
User sınıfına veya bu sınıfın alt sınıflarına
ait *olmayan* nesnelerin name özelliklerini ekrana sütun olarak yazdırın.
$arr dizisini bir döngüyle gezin ve
tam olarak User sınıfına ait olan,
yani City sınıfına veya Employee sınıfına ait *olmayan*
nesnelerin name özelliklerini ekrana sütun olarak yazdırın.