الدوال السحرية

يُكتب أيضاً: __get, __set

دوال PHP خاصة تبدأ بشرطتين سفليتين مثل __get و __set، تُستدعى تلقائياً عند قراءة خاصية غير موجودة أو الكتابة فيها، فتتحكم أنت في مكان تخزين القيم داخل مصفوفة خاصة.

الدوال السحرية (Magic Methods) دوال خاصة في أصناف PHP يستدعيها المحرك تلقائيًا عند حدث معين، وتبدأ أسماؤها بشرطتين سفليتين. أشهرها __construct التي تعمل عند إنشاء الكائن.

منها __get و__set اللتان تُستدعيان عند قراءة أو كتابة خاصية غير موجودة، و__call عند استدعاء دالة غير معرّفة، و__toString عند تحويل الكائن إلى نص. بها تبني المكتبات واجهات مرنة.

تعريف __get و__set هو الطريقة النظيفة للتعامل مع الخصائص غير المعرّفة دون تحذيرات PHP 8.2. لكن الإفراط فيها يجعل الكود صعب التتبع، ودالتا __wakeup و__destruct ترتبطان بثغرات حقن الكائنات عند فك تسلسل بيانات غير موثوقة.