السلام عليكم و رحمت الله و بركاته.
موقع PHPIST.NET هو موقع موجه إلى كل فئات المطورين و المبتدئين في هذا المجال. الموقع حديث النشأة لذلك فمرحبا بكل من يريد المساهمة بأي مقالة في إطار الويب لإغناء المجتمع العربي بآخر التكنولوجية و ما تتميز به بالأخص لغة PHP و PHP5. لكن الموقع منفتح على كل اللغات الأخرى إذا كان من يريد أن يساهم.
أخبار التكنولجية
الرئيسية » PHP » الرؤية أو Visibility في لغة PHP5
الرؤية أو Visibility في لغة PHP5

الرؤية أو Visibility في لغة PHP5

السلام عليكم و رحمة الله و بركاته.

اليوم سنرى ماهي الرؤية في لغة PHP5. لا نعني بالرؤية هنا الرؤية التي تكون في الأحلام 🙂

الرؤية هي رؤية الخصائص و الأساليب و مدى إمكانية الولوج إليها. توجد لدينا ثلاث أنواع من الرؤية في لغة PHP5، وهي كالتالي :

1 – عام أو Public : و نستطيع الولوج إليها داخل الكلاس أو خارجه إما عبر إنشاء كائن للكلاس و الولوج إليها منه أو داخل كلاس يرث من الكلاس الأب.

2 – محمي أو Protected : هذا النوع من الرؤية يمكن الولوج إليه إما داخل الكلاس الذي أنشأ فيه أو عن طريق الوراثة من الكلاس الأب. لا يمكننا الولوج إليه عن طريق إنشاء كائن، فهذا سيظهر لنا خطأ على المتصفح.

3 – خاص أو Private : أما النوع الأخير فهو كما يرمز إليه اسمه أي خاص، لا يمكن الولوج إلى هذا النوع إلا داخل الكلاس الذي أنشأ فيه.

للإشارة فإن هذه الأنواع تخص الخصائص و كذا الأساليب على حد السواء. لنأخذ أمثلة على هذه الأنواع.

النوع العام : Public

هذا مثال على النوع الأول من الرؤية كما رأينا في درس الوراثة. فكل الأساليب و الخصائص من نوع عام أي أننا يمكننا الولوج إليهم خارج الكلاس إما عن إنشاء كائن أو الولوج إليهم عن طريق الوراثة. لنأخذ مثال على كل حالة.

عن طريق الوراثة :

كما ترى فإننا استطعنا الولوج للخاصية lastName$ و الأسلوب ()getFullName و تغييرهما كما نشاء. لنرى إمكانية الولوج لهما عن طريق إنشاء كائن :

فهذا سيطبع لنا الإسم الأول و هو كمال، ثم الولوج إلى الأسلوب وطباعة ما بداخله و هو الإسم الكامل ‘كمال أحمد’.

لنأخذ مثال على النوع الثاني و هو محمي أو Protected. هذا المثال يشبه المثال الماضي.

عن طريق الوراثة :

إذا لاحظت جيدا فإننا أعطينا للخاصية lastName$ و الأسلوب ()getFullName رؤية محمي، لكن في الكلاس الإبن أصبح كل من lastName$ و ()getFullName عام، إذا فاننا نستطيع إنشاء كائن و الولوج إليه فقط من الكلاس الإبن. إذا قمنا للولوج إلى الخاصية lastName$ و الأسلوب ()getFullName من الكلاس الأب فسوف يطبع لنا رسالة خطأ. كن حذرا في التلاعب بالرؤية في لغة PHP5.

إذا لنغير في الكلاس الإبن و نجعل الرؤية فيه محمية :

في هذه الحالة فالرؤية متوفرة فقط داخل الكلاس الإبن، إذا قمنا بإنشاء كائن و الولوج للخاصية lastName$ أو الأسلوب ()getFullName فسوف نرى رسالة خطأ على المتصفح هكذا :

لننتقل للنوع الأخير من الرؤية و هو الخاص أو Private.

في هذه الحالة لا نستطيع أن نرث من الكلاس الأب أي شيء و لا نستطيع أيضا أن ننشيء كائن لأن الخصائص و الأساليب متوفرة فقط داخل الكلاس الأب.

قد تتسائل ماهو الغرض من كل هذا؟ لماذا هذه الأنواع من الرؤية؟

سأقول لك إن غرض الرؤية في البرمجة الكائنية هو حجب بعض الأساليب أو الخصائص التي لا تريد من الآخرين أن يلجو لها، و هذا يكون عندما تنشئ مكتبة تفعل شيء محدد أو إنشاء ما يسمى ب API، فعندئذ لاتريد من الآخرين العبث بالكود الذي كتبته.

أتمنى أنني قد وفقت بإذن الله في إيصال بعض المفاهيم حول الرؤية في لغة PHP5. لكل الإقتراحات أو التفسيرات أو أيضا تصحيح أخطاء، المرجو ترك تعليق أسفله.

عن Yassine Belkaid

ياسين بلقايد، مطور مواقع محترف. طور مجموعة كبيرة من المواقع و تطبيقات الويب. يحب عمله و شغوف بآخر التكنولوجية، يحب لغة PHP5 و كل ما يتعلق بها.

اضف رد

لن يتم نشر البريد الإلكتروني . الحقول المطلوبة مشار لها بـ *

Please type the characters of this captcha image in the input box

Please type the characters of this captcha image in the input box

*