متى تستخدم 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->؟ ولماذا يتصرفان بشكل مختلف؟ يهمني بشكل خاص حالة الوراثة — سمعت أن هناك بعض المشاكل الخفية.
شكرًا مقدمًا على المساعدة!