البرمجة

إنشاء متغيرات داخل الكلاس باستخدام دوال PHP

في الشيفرة المقدمة، يظهر لنا كلاس بإسم “book” ويحتوي على دالة عامة تحمل اسم “set”، وتستقبل هذه الدالة متغيرًا وتقوم بتمريره إلى دالة أخرى تدعى “newvar”. الهدف هو إنشاء متغير جديد داخل الكلاس باستخدام الدالة “set”.

لنقم بتعديل الشيفرة لتحقيق الهدف المطلوب:

php
class Book { // قم بتعريف خاصية (property) لحفظ البيانات داخل الكلاس private $data = array(); // دالة لتعيين قيمة المتغير داخل الكلاس public function set($name) { $this->newvar($name); } // دالة لإنشاء متغير داخل الكلاس private function newvar($name) { // تعيين قيمة افتراضية للمتغير إذا لم يتم تحديده $this->data[$name] = ''; // استخدام دالة ماجيك __set لتعيين قيمة المتغير $this->$name = & $this->data[$name]; } } // استخدام الكلاس $x = new Book(); $x->set('title'); $x->title = 'Jack'; echo 'عنوان الكتاب هو: ' . $x->title; echo '
-----------------------------
'
; $x->set('writer'); $x->writer = 'Tom'; echo 'كاتب الكتاب هو: ' . $x->writer;

في هذا السياق، تمت إضافة خاصية data إلى الكلاس لتخزين البيانات الفعلية، وتم تعديل دالة newvar لتعيين قيم المتغيرات داخل الكلاس. يتم استخدام دالة ماجيك __set لتعيين قيم المتغيرات بمرونة. يظهر الناتج المتوقع الذي تم توضيحه في نهاية الشيفرة.

المزيد من المعلومات

بالطبع، دعنا نستكمل شرح الشيفرة ونقدم بعض المعلومات الإضافية:

  1. الخصائص الخاصة (private $data)

    • تم إستخدام خاصية data لتخزين البيانات داخل الكلاس Book. يتم تعريفها باعتبارها خاصة (private) لتكون مقصورة داخل الكلاس ولا تكون متاحة للاستخدام من خارجه.
  2. الدوال (public function set و private function newvar)

    • الدالة set تستقبل اسم المتغير وتقوم بتنفيذ دالة newvar لإعداد المتغير داخل الكلاس.
    • الدالة newvar تأخذ اسم المتغير وتقوم بتعيين قيمة افتراضية له داخل خاصية data، ثم تستخدم دالة __set لربط المتغير بالقيمة داخل data.
  3. التعديلات على الاستخدام ($this->$name = & $this->data[$name];)

    • تم استخدام & لربط المتغير بالقيمة المخزنة في data بدلاً من إنشاء نسخة جديدة، مما يتيح للمتغير أن يتغير تلقائيًا عندما يتم تغيير قيمته في data.
  4. الاستخدام الفعلي ($x->title = 'Jack'; و $x->writer = 'Tom';)

    • بعد تنفيذ set، يمكنك تعيين قيم للمتغيرات بشكل مباشر كما هو موضح في الأمثلة ($x->title = 'Jack'; و $x->writer = 'Tom';)، وستكون هذه القيم مرتبطة مباشرة بالمتغيرات داخل الكلاس.
  5. الإخراج المتوقع

    • يُتوقع أن يظهر في الإخراج النهائي “عنوان الكتاب هو: Jack” و”كاتب الكتاب هو: Tom”.

باختصار، الشيفرة المعدلة تسمح لك بإنشاء متغيرات داخل الكلاس Book باستخدام دالة set وتعيين قيم لها بشكل مباشر، وتستخدم آلية داخلية لربط هذه المتغيرات بالقيم المخزنة داخل الكلاس بشكل آلي.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر