دریافت member-variable از کلاس والد....
10 اردیبهشت 1388 ساعت 12:54
پی اچ پی
جدیدا متوجه شدم که اگر یک کلاسی، یک کلاس دیگه رو extend کنه، نمی تونه Propertyهای کلاس والد که static نیستند رو مستقیما بگیره. یعنی اینجوری جواب نمیده:
class childClass extends parentClass {
.....
$a = parent::memberVariable;
.....
}
توی اینترنت گشتم چیزی جالبی پیدا نکردم ولی خودم یه روش باحال کشف کردم. برای گرفتن Property کلاس والد میشه یک متد توی کلاس والد ایجاد کرد که بیاد Property رو return کنه. مثل این:
class parentClass {
.....
function getProperty($property)
{
return $this->$property;
}
.....
}
حالا توی کلاس پایین دستی میتونید هر مشخصه ای رو از کلاس والد بگیرید (البته با مقدار کنونی)
class childClass extends parentClass {
.....
$a = parent::getProperty("memberVariable");
// $a equals to parent::memberVariable
.....
}
دلیل اینکه چنین قابلیتی تعریف نشده کاملا مشخصه. Propertyهای یک کلاس اگر static نباشند، بسته به متدهای کلاس تغییر می کنند و نمیشه با قطعیت مقدار نهایی ازشون گرفت.

Google Chrome
امیرحسینم. اسمم رو دوست دارم، خودم رو دوست دارم. تهران زندگی می کنم. دانشجوی رشته صنایع هستم شغل درست و حسابی ندارم. طراحی وب می کنم ولی همه اش واسه سرگرمی بوده. برنامه نویس PHP هستم. برنامه نویسی و وقت گذرونی با کامپیوتر تنها کاریه که خسته ام نمی کنه.
تو چی فکر می کنی؟