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


حتی میشه متدهای یه کلاس خارجی رو دستکاری کرد.(اگه اشتباه میگم استاد اصلاح بفرمایند)

یادگیری مداوم حداقل شرط لازم برای موفقیت در هر زمینه ای است که در آن فعالیت می کنید؛ هر روز چیز جدیدی بیاموزید.
پاسخ
تشکر شده توسط:
#5
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

یادگیری مداوم حداقل شرط لازم برای موفقیت در هر زمینه ای است که در آن فعالیت می کنید؛ هر روز چیز جدیدی بیاموزید.
پاسخ
تشکر شده توسط: tabesh
#6
ممنونم دوست عزیز .  درست شد
انگار که نیستی ، چو هستی خوش باش
حکیم عمر خیام
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان