| |||||||
| المدوّنات | البحث | مشاركات اليوم | اجعل كافة المشاركات مقروءة |
|
| | LinkBack | أدوات الموضوع |
| |||||
| الجزء الثاني : المتغير الداخلي this الجزء الثاني : المتغير الداخلي this كما ذكرنا في السابق أن الكلاس هو شرح للكائنات التي سيتم إنتاجها وإلى هنا وصلنا إلى كلام سليم جداً ... حسناً .. عندما تقوم أنت بشرح كلاس معين فإنك كما ذكرنا مسبقاً أنك ستقوم بإنشاء متغيرات ودوال كلام سليم ياغالي ..! طيب السؤال هنا ماذا لوكتبنا دالة خارج الكلاس أي ليس لها علاقة بالكلاس (دالة عادية) بإسم abdulah وبعدما أنتهينا من الدالة قمنا بكتابة كلاس جديد تحت هذه الدالة بإسم مثلاً Swalif وكان كلاس سوالف يحتوي على متغير بإسم مثلاً abc ودالتين بإسم nice و abdulah . ماذا ستلاحظ من هذا الكلام ... !!!؟ أن الملف الذي نكتب فيه يحتوي على دالتين بإسم عبدالله .!! الأولى داخل الكلاس والثانية خارج الكلاس أي دالة عادية والسؤال الأساسي هنا : ماذا لو أردنا عند كتابتنا لدالة nice أن نستدعي الدالة abdulah عندها سيكون الكود كالتالي : كود PHP: لمن لديهم خبرة في مجال الـ OOP فإنه سيعرف الجواب .. ولكي أريحكم فإنه سيتم تنفيذ الدالة التي بخارج الكلاس وليست التي بداخل الكلاس إذاً ماهو الحل في حال أردت أنا أن أقوم بإستدعاء الدالة التي بداخل الكلاس وليست التي بالخارج ؟ الجواب هو : إستخدام المتغير this ولكن ماهو المتغير this ? بإختصار فإنه كما ذكرنا أن الكلاس يحتوي على مجموعة من الدوال والمتغيرات (صحيح) إذاً فوظيفة المتغير this ستمكنك من الوصول إلى هذه الدوال والمتغيرات الخاصة بالكلاس الذي تقوم أنت بشرحه(وأنت داخل الكلاس فقط أي لايمكنك إستخدام المتغير this خارج شرح الكلاس وهذه النقطة مهمه فإنتبه لها )لذلك إذا أردنا أن نعيد المثال الأعلى لكي تقوم الدالة nice بإستدعاء الدالة abdulah التي بداخل الكلاس فإني سأعيد مافي الأعلى ليكون كالتالي (ولاحظ الدالة nice ) كود PHP: والآن ماذا إذا أردنا أن نستخدم المتغير abc داخل الدوال ؟ ينطبق على المتغيرات نفس الكلام أي يتم إستخدام المتغير this للوصول إليها مع ملاحظة أنه لايتم وضع علام $ للمتغير الذي يأتي بعد this . أي إذا أردنا أن تقوم الدالة abdulah بإعطاء القيمة 7 للمتغير abc وتقوم الدالة nice بطباعة قيمة المتغير abc فلاحظ كيف يتم إستخدام المتغير abc من خلال دوال الكلاس كالتالي : كود PHP: وأرجوا أن تكون الفكرة من وراء استخدام المتغير this قد اتضحت بإذن الله تعالى .. و للتذكير فإن this لايتم إستخدامه خارج تعريف الكلاس أي بكلام أخر لايمكن إستخدامه في خارج الكلاس .. وهذا مالدي الآن فإن أخطأت فمن نفسي والشيطان وإن أصبت فمن الله عز وجل .. وللبقية حوار بإذن الله تعالى ... أخوكم عبدالله عيد
__________________ قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل) | |||||
|
| |||||
| The Constructor أو الباني المحمل الممهد
The Constructor أو الباني المحمل الممهد ... ! بالنسبة لهذا الدرس فهو يتحدث عن Constructor و تترجمها الكتب العربية والمواقع العربية بكلمات كثيرة منها الباني . المحمل . الممهد . إلخ ... لذلك أنا هنا لا أعرف بأي إسم أضعه ... لذلك سأقول المعنى على شكل تعريف ثم أذكر إسم معين لنسير عليه .. مامعنى Constructor ? بالنسبة للبرمجة فهي عبارة عن دالة تكون داخل الكلاس وتقوم هذه الدالة بإجراء عمليات التمهيد مثل أن تستخدم الدالة هذه لتمهيد قيم المتغيرات عند بدء التعامل مع الكلاس ... وهي أول دالة يتم إستخدامها عند إنشاء الكائن وهذا ثابت . أما بالنسبة للسؤال هنا : هو إذا كان الـ Constructor دالة فكيف يتعرف الكلاس على دالة معينة ضمن الدوال الموجودة فيه ؟ يختلف الجواب من php4 و php5 !! وأنا سأكتفي ببي اتش بي 4 ...! تكون دالة Constructor بنفس إسم الكلاس بالضبط حتى في شكل الحروف أي إذا كانت الحروف مكتوبة في اسم الكلاس بالصغير والكبير فيجب أن يكون إسم الدالة مطابق بالضبط ... ويازين التوضيح بمثال .. الآن تخيل أن لدينا كلاس بإسم Image أي صورة وفي هذا الكلاس ولنفرض متغيرين هما w يمثل عرض الصورة مثلاً ومتغير بإسم h ويمثل الإرتفاع للصورة و هذا الكلاس يحتوي على دالتين بإسم Image ويمثل الـ Constructor الخاص بالكلاس Image ولاحظ هنا أن هذه الدالة بنفس إسم الكلاس وتستخدم لأي شئ تريد عمله فهي دالة عادية مثلهامثل أي دالة ويمكنك كتابة ماتريده فيها ولكن عرفت على أنها دالة لتمهيد المتغيرات الخاصة بالكلاس وإجراء العمليات التمهيدية ولكن هذه ليست قاعدة ثابتة . Draw لرسم الصورة مثلاً لذلك سنمهد المتغيرين h,w في الدالة Image وسيكون شكل الكلاس كالتالي : كود PHP: طيب الآن أنشأنا الكلاس هنا .. الآن نريد إستخدام الكلاس Image ونريد أن ننشئ كائن بإسم pattern لذلك فإننا سنقوم بالتالي : كود PHP: في الحقيقة أنت كتبت إسم الكلاس نعم ولكن في حقيقة الأمر أنت تستدعي الدالة Image من ضمن الكلاس Image لذلك المتغير pattern ستكون قيمة h,w فيه هي 0 و 0 . لذلك دائماً دالة الـ Constructor يتم إستدعائها عند إنشاء الكائن فقط .. الآن لو أردنا أن نجعل المستخدم هو من يعين طول وعرض الصورة فإننا نستطيع وضع باراميترين للدالة Image عند التمهيد وسيصبح شكل الكلاس مع الدالة Image كالتالي : كود PHP: الآن إذا أردت أن تنشئ كائن بإسم pattern كما ذكرنا فإنك ستنشئ الكائن كالتالي : كود PHP: وأرجوا أن تكون الفكرة قد وصلت من وراء الـ Constructor .. وكان الله من وراء القصد . والآن بعدما شرحت الأساسيات فالمطلوب هو أن يضع كل شخص ما يريده حول OOP فهناك مواضيع كثيرة جداً جداً حول هذا الموضوع وكل شخص يضع سؤاله حول هذا المفهوم كي يتم الإجابة عليه وشرحه وسأكون في الخدمه بإذن الله تعالى ... وسنحاول أن نجعل الموضوع يزخر بالفائدة حول هذا المفهوم فأي تساؤلات أو مواضيع جديدة حول OOP ستكون هنا ... وهذا مالدي الآن فإن أخطأت فمن نفسي والشيطان وإن أصبت فمن الله عز وجل .. وللبقية حوار ... بإذن الله أخوكم عبدالله عيد
__________________ قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل) | |||||
|
| |||||
|
السلام عليكم ورحمة الله وبركاته ... تحية طيبة لاشكر على واجب وهذا واجبنا .. المطلوب الآن من الجميع طرح أسئلتهم حول الموضوع لكي يصبح هذا الموضوع ملئ بالشروحات والأسئلة المجاب عليها وهكذا أفضل يعني الرجاء طرح سؤال في مايخص OOP ..! وكل مرة تتم الإجابة على سؤال معين حتى يصبح هذا الموضوع مرجع بإذن الله تعالى ,,, وبعد ذلك عندما نجد أننا أكتفينا من الأسئلة عندها سنقوم بشرح الكلاسات والكائنات في php5 بإذن الله تعالى ... تحياتي أخوكم عبدالله عيد
__________________ قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل) | |||||
|
| |||||
|
[] اشكر الاخ عبد الله على الشرح والاخوة الدين ساعدوا في الموضوع وهنا اضع متال تطبيقي للدرس عبارة عن كلاس لحماية الصفحة بكلمة السر كود PHP: ولاستغلال على هدا الشكل كود PHP:
__________________ اينكم يا مغاربة ’’’؟؟؟ لنتعاون من اجل النهوظ بالمواقع المغربية **************************** متى سنتوقف عن مواقع المسيقى والدردشة !!!!! www.gsm4maroc.com | |||||
|
| |||||
|
وفي المتال اعلاه لاحضت انه يمكن استغلال عمل الكلاس وجميع الكلاسات بواسطة وضع استغلال الكلاس داخل دالة جديد متل كود PHP: كود PHP: الطريقة جربتها على php5 ولم اراها في اي مكان وارجو من الاخوة المحترفين تصحيح الاخطاء ادا كانت واعطاء رايهم في هاته الطريق وهل فعلا من الجيد تحويل الكلاس الى دالة انا من رايء انه جيد حيت انه يسهل استعمال الكلاس في عدة صفحات الى اخره لا تنسو انى مبتدا ولا تاخدو علي ان اخطأت
__________________ اينكم يا مغاربة ’’’؟؟؟ لنتعاون من اجل النهوظ بالمواقع المغربية **************************** متى سنتوقف عن مواقع المسيقى والدردشة !!!!! www.gsm4maroc.com | |||||
|
| |||||
|
نسيت شيء اخر بنسبة لمتغيرات النضام هل حتى هي تحتاج الى global لتعريفها داخل الكلاس وشكرا
__________________ اينكم يا مغاربة ’’’؟؟؟ لنتعاون من اجل النهوظ بالمواقع المغربية **************************** متى سنتوقف عن مواقع المسيقى والدردشة !!!!! www.gsm4maroc.com | |||||
|
| |||||
| موضوع وشرح أكثر من ممتاز بارك الله فيك أخ عبد الله .. ولي عودة إن شاء الله تعالى
__________________ 100 صقر !! يومياتي في تعلم php .. أرحب بالمبتدئين لنتعلم معا والمحترفين ليقدموا النصح والتوجيه .. . سبحان الله وبحمده عدد خلقه .. ورضا نفسه .. وزنة عرشه .. ومداد كلماته . | |||||
|
| |||||
|
جزاك الله خيرا أخي عبدالله ،، فعلا افضل شرح للكلاس لحد الان ،، كان عندي سؤال ![]() أرى في بعض الكلاسات كلمة global ? كيف نستخدمها في كلاستنا و أيضا بعض السرفرات توقفها ؟ما هو البديل ؟ أثقلنا عليك لكن احتسب الاجر
__________________ سبحان الله وبحمده سبحان الله العظيم | |||||
|
| |||||
|
درس رائع بارك الله فيك الله يوفقك اخي وجزاك الله خير السلام عليكم
__________________ شكرا سوالف سوفت .... اخباري هنا - إمبراطورية وحيد - قلعة تحميل الملفات - معرض صور الديكورات - مصور فوتوغرافي . | |||||
|
| |||||
|
الف شكر لك أخوي
__________________ كود PHP: www.almsloob.com/vb | |||||
|
| |||||
|
ياريت استاذ عبد الله تكمل الموضوع واكون شاكر ليك واعضاء المنتدى يكونوا شاكرين ليك ويجعلوا فى ميزان حسناتك بأذن الله
__________________
| |||||
|
| |||||
|
مشكور اخوي عبدالله على الموضوع الرائع لكن لدي سؤال كيف اعرف انني بحاجة الى كلاس يعني قمت بعمل 4 مواقع ولم اكتب فيها اي class مع العلم ان فاهم الكلاسات هل للكلاسات ميزة فردية غير موجودة في الطريقة العادية التي نستخدمها (بدون كلاسات) ؟؟ انا انشئ Functions واستخدمها في الموقع عن طريق تضمين ملف الfunction لقد قرأت بعض البرامج وهي مكونه من classes لكن هل جميع المواقع ممكن ان تحتوي على كلاسس ---- مثلا : في الموقع كان : نظام عضويات نظام تسوق الكتروني نظام مراسلة الادارة لوحة تحكم منتجات اقسام ما هي الاقسام التي ممكن عمل كلاسات لها؟؟ والسلام عليكم | |||||
|
![]() |
| أدوات الموضوع | |
| |