Örnek: bir yöntem SpecificClass bir örneğini dönmek gerekiyordu. Bu sınıftan olup olmadığını nasıl ki dönüş değerini kontrol edebilirsiniz?
Bir nesnenin bir örneği olup olmadığını denetlemek için, instanceof
a> operatörünü kullanabilirsiniz:
Bu nesne bu sınıfın bir çocuk sınıfının bir örneği ise "evet" diyecek gibi - ki bu nesne bir specific
sınıfının bir örneği olup olmadığını tespit etmek için kullanılabilir anlamına gelir.
For instance, this portion of code :
class ClassA {}
class ClassB extends ClassA {}
$a = new ClassB();
if ($a instanceof ClassA) {
echo '$a is an instanceof ClassA<br />';
}
if ($a instanceof ClassB) {
echo '$a is an instanceof ClassB<br />';
}
Bu çıktıyı alırsınız:
$a is an instanceof ClassA
$a is an instanceof ClassB
$a
, bir şekilde, ClassB
bir çocuk sınıf olarak, ClassA
bir örneğidir ClassA
.
Bu instanciated oluyor satırına bakın - ve, tabii ki, $a
ayrıca ClassB
bir örneğidir.
Sen dönüş değerini kendisi kontrol edemez, ama bunu kullanarak döndürülen class 'instanceof' kontrol edebilirsiniz. (Benzer bir bazda yararlı 'get_class' bulabilirsiniz.)
Sen instanceof
operatörü veya is_a işlevini kullanabilirsiniz.
Eğer (daha dinamik bir kod temeli) sınıfın adı ile bir dize geçmek istiyorsanız is_a
yararlıdır.