35. معدّلات الوصول: Public, Protected, and Private
تحدد معدّلات الوصول رؤية ووصول خصائص الفئة ودوالها. هذا هو حجر الزاوية في التغليف (Encapsulation).
1. public (عام)
يمكن الوصول إليه من أي مكان: داخل الفئة، داخل الفئات الفرعية، ومن الخارج (بواسطة مثيل الكائن).
php
balance; // الوصول من الخارج مسموح ?>2. protected (محمي)
يمكن الوصول إليه فقط من داخل الفئة نفسها ومن الفئات الفرعية التي ترثها. لا يمكن الوصول إليه مباشرة من مثيل كائن خارج التسلسل الهرمي للفئة.
3. private (خاص)
يمكن الوصول إليه فقط من داخل الفئة نفسها التي تم تعريفه فيها. الأعضاء الخاصة غير مرئية لكل من مثيلات الكائن والفئات الفرعية.
مقارنة بالأمثلة
php
internal_id; // موافق: الوصول إلى الخاص من الداخل } } $profile = new UserProfile(); echo "Name: " . $profile->name; // موافق (عام) // echo $profile->role; // Fatal Error: لا يمكن الوصول إلى خاصية محمية // echo $profile->internal_id; // Fatal Error: لا يمكن الوصول إلى خاصية خاصة echo "المعرف الداخلي عبر الدالة العامة: " . $profile->showInternalId(); // موافق ?>
أفضل ممارسة: اجعل الخصائص افتراضيًا private أو protected. اعرضها فقط من خلال دوال عامة (Getters و Setters) للتحكم في كيفية قراءة البيانات وكتابتها.