readonly
الخصائص للقراءة فقط readonly readonly
مُعدِّل يجعل الخاصية تُهيَّأ مرّة واحدة فقط، وأي محاولة تعديل لاحقة تُسبّب خطأً.
readonly (منذ PHP 8.1) يُطبَّق على خاصية ذات نوع معلَن، ويسمح بتهيئتها مرّة واحدة فقط (عادة داخل البنّاء). أي محاولة تعديل لاحقة — تعيين مباشر، ++، أو حتى تعديل عنصر داخل مصفوفة الخاصية — تُسبّب خطأ فادح.
تُستخدم غالبًا مع Constructor Property Promotion لبناء كائنات قيمة (Value Objects) ثابتة بعد الإنشاء.
الصياغة
class Name {
public function __construct(
public readonly string $prop,
) {}
}📄 مثال
class ApiConfig {
public function __construct(public readonly string $baseUrl) {}
}
$c = new ApiConfig("https://api.example.com");
$c->baseUrl = "other";
// Fatal error: Cannot modify readonly propertyأهم النقاط
| العنصر | الوظيفة |
|---|---|
| typed property | readonly يتطلّب نوعًا معلَنًا للخاصية دائمًا |
💡 نصائح عملية
- اجمع readonly مع ترقية خصائص البنّاء لكود أقصر وأمان أعلى
⚠️ أخطاء شائعة
- تعريف خاصية readonly بلا نوع — خطأ وقت التحليل
- محاولة تعديل الخاصية خارج البنّاء بعد أول تهيئة
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار PHP الكامل بالعربي.