Aşağıda bir örnek sınıf hiyerarşisi ve kodudur. Ne arıyorum 'ChildClass1' veya 'ChildClass2' her çocuk sınıfta yeniden uygulanması olmadan statik yöntem) buna denir WhoAmI (olsaydı belirlemek için bir yoldur.
<?php
abstract class ParentClass {
public static function whoAmI () {
// NOT correct, always gives 'ParentClass'
$class = __CLASS__;
// NOT correct, always gives 'ParentClass'.
// Also very round-about and likely slow.
$trace = debug_backtrace();
$class = $trace[0]['class'];
return $class;
}
}
class ChildClass1 extends ParentClass {
}
class ChildClass2 extends ParentClass {
}
// Shows 'ParentClass'
// Want to show 'ChildClass1'
print ChildClass1::whoAmI();
print "\n";
// Shows 'ParentClass'
// Want to show 'ChildClass2'
print ChildClass2::whoAmI();
print "\n";