Avatar ·

متى تستخدم self في PHP ومتى تستخدم $this؟ الفرق والأمثلة

مرحبًا بالجميع! لقد بدأت بتعلم البرمجة كائنية التوجه (OOP) في PHP ولا أستطيع فهم الفرق بين self و $this. يبدو أن كلاهما يُستخدمان داخل الكلاس للوصول إلى الخصائص والدوال، لكني أخلط بينهما دائمًا. إليك مثال على الكود الخاص بي: ```php class User { public $name = 'Гость'; public static $count = 0; public function setName($name) { $this->name = $name; // لماذا ليس self؟ } public static function getCount() { return self::$count; // لماذا ليس $this؟ } } ``` عندما أكتب $this->name — كل شيء يعمل. لكن إذا كتبت self::$name — يظهر خطأ. ومع الخاصية الثابتة العكس: self::$count يعمل، بينما $this->count — لا يعمل. قرأت الدليل، لكنه صعب جدًا. اشرح لي بكلمات بسيطة: متى يجب استخدام self::، ومتى يجب استخدام $this->؟ ولماذا يتصرفان بشكل مختلف؟ يهمني بشكل خاص حالة الوراثة — سمعت أن هناك بعض المشاكل الخفية. شكرًا مقدمًا على المساعدة!