تالار گفتمان nCIS.ir

نسخه‌ی کامل: پیدا کردن کلاس والد (حل شد)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام
ببخشید یک سوالی داشتم
ما اگر بخواهیم نام والد هر کلاس را ببینیم باید چکار کنیم
داخل پکیج گفتید که بدین شکل عمل کنیم
class myclass1{
public function getClass(){
return get_class();
}
public function get_real_class(){
return get_class($this)
{
}
حالا اگر از کلاس class1 یک کلاس بنام class2 مشتق کنیم درست کار میکند
ولی اگر از کلاس Class2 کلاس class3 را مشتق کنیم :
کلاس جاری را درست مینویسد ولی کلاس پدر را همان کلاس Class1 قرار میدهد
در حالی که کلاس پدرش class2 هست و کلاس پدربزرگش class1
چکار کنیم که والد هر کلاسی رو درست نشان بده ؟ ممنون
فقط کلاس والد اصلی رو میشه استخراج کرد. برای اطلاعات کاملتر درمورد کلاسها بهتره با Reflection کار کنید.
ببخشید Reflection چی هست ؟
The ReflectionClass class reports information about a class.


حتی میشه متدهای یه کلاس خارجی رو دستکاری کرد.(اگه اشتباه میگم استاد اصلاح بفرمایند)
class A
{	
}
class B extends A
{	
}
class C extends B
{
}
class D extends C
{
}
class E extends D{
}
$class = new ReflectionClass('E');
$parents = array();
while ($parent = $class->getParentClass()) {
    $parents[] = $parent->getName() .'  's Parents , '. $class->getName()."<br/>";
    $class = $parent;
}
echo "<br/>" . implode("", $parents);

//Output
//D 's Parents , E
//C 's Parents , D
//B 's Parents , C
//A 's Parents , B
ممنونم دوست عزیز .  درست شد