صفحة 4 من 6 الأولىالأولى 123456 الأخيرةالأخيرة
النتائج 46 إلى 60 من 87

الموضوع: دورة في : مفهوم OOP والبرمجة بالكلاسات والكائنات خطوة خطوة

  1. #46
    عضو سوبر نشيط
    تاريخ التسجيل
    Dec 2004
    المشاركات
    884


    شكرا لك أخي عبد الله عيد
    بارك الله فيك





    __________________
    مدونتي .. دروس (PHP, JavaScript, C, Java)
    Twitter
    برمجة وتطوير المواقع والمنتديات

  2. #47
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    213


    الف الف الف شكرا لك ااستاااذي عبدالله عيد



    شرح راااائع ومفصل



    حفظت الصفحات عندي

    وانتظر المزيييد

    تحيااااتي





    __________________
    سبحان الله والحمد لله ولا اله الا الله والله اكبر
    افضل [ بيج رانك 4 ] <<< كان سابقا .. الحين 2 :(

  3. #48


    يعطيك ألف عافية أخوي عبدالله

    بصراحة مدخل رائع لل OOP


    وفي انتظار عودتك بعد العيد





    __________________
    مدونتي الشخصية : Q_Q
    فليكري : o_O
    تويتري : ’_’
    حياكم فيهم

  4. #49
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2006
    المشاركات
    389


    Up
    حرام الموضوع ينزل تحت حتى لو كان ما اكتمل لكن هو مهم ..
    وان شاء الله يكمل الباقي الاخ عبدالله ...





    __________________
    أرجوا من الجميع ان يسامحوني ، سواء عرفوني أو لم يعرفوني !! ، ارجوا من جميع من قد اكون اسأت اليهم أن يصفحوا عني ، ومن لديهم عندي حقوق أن يطلبوها مني .. جمعنا الله في الجنان .

  5. #50

    أسف على التأخير ..



    أتقدم بالأسف على التأخير ولكن هي أشياء خارجة عن الإرادة ...

    على العموم سأتابع بإذن الله تعالى ...

    تحياتي





    __________________
    قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)

  6. #51

    الجزء الثاني : المتغير الداخلي this



    الجزء الثاني : المتغير الداخلي this

    كما ذكرنا في السابق أن الكلاس هو شرح للكائنات التي سيتم إنتاجها وإلى هنا وصلنا إلى كلام سليم جداً ...

    حسناً .. عندما تقوم أنت بشرح كلاس معين فإنك كما ذكرنا مسبقاً أنك ستقوم بإنشاء متغيرات ودوال كلام سليم ياغالي ..!

    طيب السؤال هنا ماذا لوكتبنا دالة خارج الكلاس أي ليس لها علاقة بالكلاس (دالة عادية) بإسم abdulah وبعدما أنتهينا من الدالة قمنا بكتابة كلاس جديد تحت هذه الدالة بإسم مثلاً Swalif وكان كلاس سوالف يحتوي على متغير بإسم مثلاً abc ودالتين بإسم nice و abdulah .

    ماذا ستلاحظ من هذا الكلام ... !!!؟

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

    والسؤال الأساسي هنا : ماذا لو أردنا عند كتابتنا لدالة nice أن نستدعي الدالة abdulah عندها سيكون الكود كالتالي :

    كود PHP:
    function abdulah()
    {
      echo 
    "Hi, Swalif";
    }

    //-------------------------

    class Swalif
    {
     var 
    abc;

     function 
    abdulah()
     {
       echo 
    "Hi, Object";
     }

     function 
    nice()
     {
      
    abdulah();
     }


    الآن نتابع السؤال : فلاحظ أن nice تستدعي الدالة abdulah لذلك أي واحدة سيتم تنفيذها هل التي بداخل الكلاس أم التي بخارج الكلاس ؟

    لمن لديهم خبرة في مجال الـ OOP فإنه سيعرف الجواب ..

    ولكي أريحكم فإنه سيتم تنفيذ الدالة التي بخارج الكلاس وليست التي بداخل الكلاس

    إذاً ماهو الحل في حال أردت أنا أن أقوم بإستدعاء الدالة التي بداخل الكلاس وليست التي بالخارج ؟

    الجواب هو : إستخدام المتغير this

    ولكن ماهو المتغير this ?

    بإختصار فإنه كما ذكرنا أن الكلاس يحتوي على مجموعة من الدوال والمتغيرات (صحيح)

    إذاً فوظيفة المتغير this ستمكنك من الوصول إلى هذه الدوال والمتغيرات الخاصة بالكلاس الذي تقوم أنت بشرحه(وأنت داخل الكلاس فقط أي لايمكنك إستخدام المتغير this خارج شرح الكلاس وهذه النقطة مهمه فإنتبه لها )لذلك إذا أردنا أن نعيد المثال الأعلى لكي تقوم الدالة nice بإستدعاء الدالة abdulah التي بداخل الكلاس فإني سأعيد مافي الأعلى ليكون كالتالي (ولاحظ الدالة nice )

    كود PHP:
    function abdulah()
    {
      echo 
    "Hi, Swalif";
    }

    //-------------------------

    class Swalif
    {
     var 
    abc;

     function 
    abdulah()
     {
       echo 
    "Hi, Object";
     }

     function 
    nice()
     {
       
    $this->abdulah();
     }


    أي بإختصار كما تشاهد فإن المتغير this يشير إلى الكلاس نفسه وهو بكلام أخر عبارة عن object أو كائن من نفس النوع الذي تقوم أنت بإنشائه وكما ترى في الدالة nice فإن المتغير this يقول بكلام عربي (أحضر الدالة abdulah الموجودة في نفس الكلاس الحالي )

    والآن ماذا إذا أردنا أن نستخدم المتغير abc داخل الدوال ؟

    ينطبق على المتغيرات نفس الكلام أي يتم إستخدام المتغير this للوصول إليها مع ملاحظة أنه لايتم وضع علام $ للمتغير الذي يأتي بعد this .

    أي إذا أردنا أن تقوم الدالة abdulah بإعطاء القيمة 7 للمتغير abc
    وتقوم الدالة nice بطباعة قيمة المتغير abc فلاحظ كيف يتم إستخدام المتغير abc من خلال دوال الكلاس كالتالي :

    كود PHP:

    class Swalif
    {
     var 
    abc;

     function 
    abdulah()
     {
        
    $this->abc 7//تعيين القيمة 7 للمتغير
     
    }

     function 
    nice()
     {
        echo 
    $this->abc;
     }


    وكما تلاحظ فإنه استدعى المتغير بدون علامة $

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

    و للتذكير فإن this لايتم إستخدامه خارج تعريف الكلاس أي بكلام أخر لايمكن إستخدامه في خارج الكلاس ..

    وهذا مالدي الآن فإن أخطأت فمن نفسي والشيطان وإن أصبت فمن الله عز وجل ..

    وللبقية حوار بإذن الله تعالى ...

    أخوكم عبدالله عيد





    __________________
    قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)

  7. #52


    مرحبا بعودتك الينا اخي





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com

  8. #53


    ما تصدق وش كثر استانست بعودتك

    وفي انتظار اكمال الدروس -- بس تكفي لا تبطي علانا.






  9. #54


    اهلا اهلا بعودتك يا عبدالله

    ياخي ما تصدق وش كثر انا مستانس برجعوك للدرس تصدق احسبك ناسية

    تكفى لا تطول الغيبة في تكملة الدرس منتظرينك بفارق الصبر

    والله يقويك ويعطيك العافية





    __________________
    سبحان الله وبحمدة ، سبحان الله العظيم

  10. #55

    The Constructor أو الباني المحمل الممهد



    The Constructor أو الباني المحمل الممهد ... !

    بالنسبة لهذا الدرس فهو يتحدث عن Constructor و تترجمها الكتب العربية والمواقع العربية بكلمات كثيرة منها الباني . المحمل . الممهد . إلخ ...

    لذلك أنا هنا لا أعرف بأي إسم أضعه ... لذلك سأقول المعنى على شكل تعريف ثم أذكر إسم معين لنسير عليه ..

    مامعنى Constructor ?

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

    أما بالنسبة للسؤال هنا : هو إذا كان الـ Constructor دالة فكيف يتعرف الكلاس على دالة معينة ضمن الدوال الموجودة فيه ؟

    يختلف الجواب من php4 و php5 !!

    وأنا سأكتفي ببي اتش بي 4 ...!

    تكون دالة Constructor بنفس إسم الكلاس بالضبط حتى في شكل الحروف أي إذا كانت الحروف مكتوبة في اسم الكلاس بالصغير والكبير فيجب أن يكون إسم الدالة مطابق بالضبط ...

    ويازين التوضيح بمثال .. :app:

    الآن تخيل أن لدينا كلاس بإسم Image أي صورة وفي هذا الكلاس ولنفرض متغيرين هما w يمثل عرض الصورة مثلاً ومتغير بإسم h ويمثل الإرتفاع للصورة و هذا الكلاس يحتوي على دالتين بإسم

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

    Draw لرسم الصورة مثلاً

    لذلك سنمهد المتغيرين h,w في الدالة Image وسيكون شكل الكلاس كالتالي :

    كود PHP:

    class Image
    {
     var 
    $w;
     var 
    $h;

     function 
    Image()
     {
      
    $this->0;
      
    $this->0;
     }

     function 
    Draw()
     {
      
    // do something here
     
    }


    طيب الآن أنشأنا الكلاس هنا ..

    الآن نريد إستخدام الكلاس Image ونريد أن ننشئ كائن بإسم pattern لذلك فإننا سنقوم بالتالي :

    كود PHP:

    $pattern 
    = new Image(); 
    لاحظ الآن عندما أنشأت الكائن فإنك كتبت إسم الكلاس بعد كلمة new ...

    في الحقيقة أنت كتبت إسم الكلاس نعم ولكن في حقيقة الأمر أنت تستدعي الدالة Image من ضمن الكلاس Image لذلك المتغير pattern ستكون قيمة h,w فيه هي 0 و 0 .

    لذلك دائماً دالة الـ Constructor يتم إستدعائها عند إنشاء الكائن فقط ..


    الآن لو أردنا أن نجعل المستخدم هو من يعين طول وعرض الصورة فإننا نستطيع وضع باراميترين للدالة Image عند التمهيد وسيصبح شكل الكلاس مع الدالة Image كالتالي :

    كود PHP:

    class Image
    {
     var 
    $w;
     var 
    $h;

     function 
    Image($a,$b)
     {
      
    $this->$a;
      
    $this->$b;
     }

     function 
    Draw()
     {
      
    // do something here
     
    }

    ولاحظ أن المتغيرين h,w يتم تحديدهما بالمتغيرين a,b ...

    الآن إذا أردت أن تنشئ كائن بإسم pattern كما ذكرنا فإنك ستنشئ الكائن كالتالي :

    كود PHP:
    $pattern = new Image(72,120); 

    وأرجوا أن تكون الفكرة قد وصلت من وراء الـ Constructor .. وكان الله من وراء القصد .


    والآن بعدما شرحت الأساسيات فالمطلوب هو أن يضع كل شخص ما يريده حول OOP فهناك مواضيع كثيرة جداً جداً حول هذا الموضوع وكل شخص يضع سؤاله حول هذا المفهوم كي يتم الإجابة عليه وشرحه وسأكون في الخدمه بإذن الله تعالى ...

    وسنحاول أن نجعل الموضوع يزخر بالفائدة حول هذا المفهوم فأي تساؤلات أو مواضيع جديدة حول OOP ستكون هنا ...

    وهذا مالدي الآن فإن أخطأت فمن نفسي والشيطان وإن أصبت فمن الله عز وجل ..

    وللبقية حوار ... بإذن الله

    أخوكم عبدالله عيد





    __________________
    قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)

  11. #56
    عضو شرف
    تاريخ التسجيل
    Mar 2005
    المشاركات
    943


    الله يجزاك الف الف خير ...






  12. #57
    عضو نشيط
    تاريخ التسجيل
    Jun 2005
    المشاركات
    122


    شكرا لك نتمنى أن تسرع فى شرحك الممتع والسهل الذى قربنا جدا من فهم وايستعاب الكائنات التى ومنذ تعلمنا للبى أتش بى نهملها ونخاف مت ان نقترب منها لخوفنا من فشلنا من فهمها
    نشكرك على مساعدتنا فى هذا الموضووع






  13. #58


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

    لاشكر على واجب وهذا واجبنا ..

    المطلوب الآن من الجميع طرح أسئلتهم حول الموضوع لكي يصبح هذا الموضوع ملئ بالشروحات والأسئلة المجاب عليها وهكذا أفضل يعني الرجاء طرح سؤال في مايخص OOP ..!

    وكل مرة تتم الإجابة على سؤال معين حتى يصبح هذا الموضوع مرجع بإذن الله تعالى ,,,


    وبعد ذلك عندما نجد أننا أكتفينا من الأسئلة عندها سنقوم بشرح الكلاسات والكائنات في php5 بإذن الله تعالى ...


    تحياتي

    أخوكم عبدالله عيد





    __________________
    قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)

  14. #59
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    46


    [] اشكر الاخ عبد الله على الشرح والاخوة الدين ساعدوا في الموضوع
    وهنا اضع متال تطبيقي للدرس عبارة عن كلاس لحماية الصفحة بكلمة السر
    كود PHP:
       class password{
    ////////////////////////
    var $name ;
    var 
    $username ;
    var 
    $password ;
    var 
    $message   ;
    ///////////////////////////
    function authenticate() {
      
    Header"WWW-authenticate: basic realm=\"$this->name\"");
      
    Header"HTTP/1.0 401 Unauthorized");
      echo   
    "<b><i>$this->message</i></b>";
      exit;
    }
    ///////////////////////////
    function CheckPwd($user15,$pass15) {

      return (
    $user15 != $this->username || $pass15 != $this->password) ? false true;

    }
    ///////////////////////////////
    function pass(){
    global 
    $PHP_AUTH_USER,$PHP_AUTH_PW;
    if(!isset(
    $PHP_AUTH_USER)) {
     
    $this->authenticate();
    }elseif(!
    $this->CheckPwd($PHP_AUTH_USER,$PHP_AUTH_PW)) {
      
    $this->authenticate();
    }
    ///////////////////////////
    }
     } 

    ولاستغلال على هدا الشكل
    كود PHP:
     $ajekal =new password()  ;
     
    $ajekal->name ='Protected';
     
    $ajekal->message ="You must enter a valid login ID and password!!!!!!";
     
    $ajekal->username ='admin';
     
    $ajekal->password ='123456789';
      
    $ajekal->pass(); 






    __________________
    اينكم يا مغاربة ’’’؟؟؟
    لنتعاون من اجل النهوظ بالمواقع المغربية
    ****************************
    متى سنتوقف عن مواقع المسيقى والدردشة !!!!!
    www.gsm4maroc.com

  15. #60
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    46


    وفي المتال اعلاه لاحضت انه يمكن استغلال عمل الكلاس وجميع الكلاسات بواسطة وضع استغلال الكلاس داخل دالة جديد متل

    كود PHP:
    function pass($name,$message,$username,$password){
     
    $ajekal =new password()  ;
     
    $ajekal->name =$name;
     
    $ajekal->message =$message;
     
    $ajekal->username =$username;
     
    $ajekal->password =$password;
      
    $ajekal->pass();  } 
    يمكن اضافت هاته الدالة بجانب الكلاس بحيت يمكن ان نستغله بواسطة اتدعاء الادالة
    كود PHP:
    pass('Protected','You must enter a valid login ID and password!!!!!!','admin','admin2'); 
    وبهاته الطريقة نتصر طريقة استغلال الكلاس بحيت انه يجد نوع من التكرار في تعريف متغيرات الكلاس واستدعاء الكلاس كل مرة
    الطريقة جربتها على
    php5 :eek2:
    ولم اراها في اي مكان وارجو من الاخوة المحترفين تصحيح الاخطاء ادا كانت واعطاء رايهم في هاته الطريق وهل فعلا من الجيد تحويل الكلاس الى دالة :deal:
    انا من رايء انه جيد حيت انه يسهل استعمال الكلاس في عدة صفحات الى اخره
    لا تنسو انى مبتدا ولا تاخدو علي ان اخطأت :con2: :con2:





    __________________
    اينكم يا مغاربة ’’’؟؟؟
    لنتعاون من اجل النهوظ بالمواقع المغربية
    ****************************
    متى سنتوقف عن مواقع المسيقى والدردشة !!!!!
    www.gsm4maroc.com





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض