آخـــر الـــمـــشـــاركــــات

تحميل برنامج الغاء تثبيت البرامج من الكمبيوتر Should I Remove It » آخر مشاركة: اردني وافتخر دردشة وتعليله وسواليف.. » آخر مشاركة: عاشق الحصن بريد الاعضاء » آخر مشاركة: محمد العزام اهلا بكم ..رمضان كريم » آخر مشاركة: حسان القضاة شو عم تسمع هلا » آخر مشاركة: حسان القضاة ما هو سبب تواجدك في المنتدى والى اي حدّ يستمر او ينتهي إنتسابك له ؟ » آخر مشاركة: قلعتي أبدية مرحبا » آخر مشاركة: محمد العزام " أميــــرةُ قـوسِ النَّصـــــر" » آخر مشاركة: قلعتي أبدية ~ إبريـــــــــــــــــل ~ » آخر مشاركة: حسان القضاة اسئلة مهمة بالفوتوشوب في المطابع 2019 » آخر مشاركة: المصمم يزن جبريل صاحب المركز الاول فى مجال تنزيل الملفات كامل مدي الحياة IDM 6.32 » آخر مشاركة: siiin همسات وأشوق » آخر مشاركة: حسان القضاة ""أيلـول""... » آخر مشاركة: قلعتي أبدية تبليغ عن رسالة زائر بواسطة راشد مرشد » آخر مشاركة: أميرة قوس النصر اشتقنالكم » آخر مشاركة: Mahmoud Zaben تُراهات ما قبل النوم ... » آخر مشاركة: قلعتي أبدية شو مزاجك اليوم... » آخر مشاركة: قلعتي أبدية قبول بلاغ عطل ثلاجات كلفينيتور 01092279973 & 0235700997 وكيل كلفينيتور (م .الجديدة) » آخر مشاركة: الوكيل1 قبول بلاغ عطل ثلاجات هوفر 01154008110 & 0235699066 وكيل هوفر (م.6اكتوبر) » آخر مشاركة: الوكيل1 قبول بلاغ عطل ثلاجات جنرال اليكتريك 01207619993 & 0235700997 وكيل جنرال اليكتريك (الز » آخر مشاركة: الوكيل1
+ الرد على الموضوع
النتائج 1 إلى 7 من 7

الموضوع: [دورة php - الدرس التاسع عشر] - انشاء الأصناف classes و الكائنات objects

  1. #1
    عضو مؤسس الصورة الرمزية Sc®ipt
    تاريخ التسجيل
    Nov 2008
    الدولة
    There's no place like 127.0.0.1
    العمر
    37
    المشاركات
    4,003

    Q (14) [دورة php - الدرس التاسع عشر] - انشاء الأصناف classes و الكائنات objects

    بسم الله الرحمن الرحيم



    السلام عليكم و رحمة الله و بركاته , تحدثنا في الدرس السابق عن مقدمة للبرمجة الموجهة للكائنات و القينا نظرة سريعة على اهم مبادئ هذا النوع من البرمجة حيث تكلمنا عن الأصناف و الكائنات و مبدأ الوراثة و التعددية و ذكرنا امثلة من الواقع التي تحاكيها برمجة الكائنات و بإمكانكم الإطلاع على الدرس السابق و باقي دروس الدورة من خلال الفهرس التالي :




    واليوم سوف نتحدث بتفصيل عن الأصناف classes و الكائنات objects و كيفية انشائهم و التعامل معهم و سنتعرف على الخصائص attribute و الوظائف او العمليات للأصناف proprieties or operations الخاصة بالصنف و نبدأ على بركة الله ,,,

    انشاء الأصناف :

    كما ذكرنا سابقا الصنف هو عبارة عن وحدة برمجية متكاملة (تخيلها علبة) لها خصائص و عمليات خاصة بها و الآن لنتعرف على الصيغة العامة لكتابة الصنف في لغة php من خلال المثال التالي :

    كود PHP:
    <?php
        
    class className
        
    {
            
    // attribute
            
    var $attribute1;
            var 
    $attribute2;
            
            
    // operation or called methods
            
    function method1($parameter){
                
            }
            function 
    method2(){
                
            }
        }
    ?>


    كما تلاحظ اننا كتبنا الكلمة class و هي كلمة محجوزة في اساسيات اللغة تدلنا على اننا سنبدأ بتعريف صنف جديد و من ثم يتبعها className و هو اسم الصنف و اسم الصنف يتبع لقواعد تسمية الدوال كما في الدروس السابقة و من ثم فتحنا الأقواس {} و كتبنا بداخلها محتويات الصنف ,, محتويات الصنف بأبسط صورة هي عبارة عن برنامج متكامل يعبر عن عمل الصنف من خلال الخصائص و الوظائف ,, و الخصائص في الأصناف دائما هي متغيرات يتم تعريفها داخل الصنف كما بتعريف المتغيرات في الدروس السابقة لكن الفرق هنا اننا يجب ان نكتب كلمة var قبل اسم المتغير او الخاصية لاحظ السطرين :
    كود PHP:
    // attribute
            
    var $attribute1;
            var 
    $attribute2

    تلاحظ اننا عبرنا عن اسماء الخصائص للصنف بمتغيرات عادية لكن سبقنا اسم المتغير بالكلمة var لأنها ضرورية في بعض اصدارات لغة php

    اما الوظائف و العمليات للصنف فقد عبرنا عنها بدوال عادية كما درسنا في الدروس السابقة ومنها في مثالنا الدالة method1 و method2 هنا يجب ان تعلم يا عزيزي ان المبدأ اننا نعرف خصائص للصنف و ثم نقوم بتعريف وظائف تتحكم بهذه الخصائص من خلال الدوال ,,

    الآن سنقوم بإنشاء صنف اسمه calculator و من خصائصه ان له رقمين و نتيجة و لديه وظائف و هي الجمع و الطرح و الضرب و القسمة لاحظ المثال و ثم الشرح :

    كود PHP:
    <?php
        
    class calculator
        
    {
            
    // attribute
            
    var $number1;
            var 
    $number2;
            var 
    $result;
            
            
    // operation or called methods
            
    function sum($num1,$num2){
                
    $this->number1 $num1;
                
    $this->number2 $num2;
                
    $this->result $this->number1 $this->number2;
                return 
    $this->result;
            }
            function 
    sub($num1,$num2){
                
    $this->number1 $num1;
                
    $this->number2 $num2;
                
    $this->result $this->number1 $this->number2;
                return 
    $this->result;
            }
            function 
    mul($num1,$num2){
                
    $this->number1 $num1;
                
    $this->number2 $num2;
                
    $this->result $this->number1 $this->number2;
                return 
    $this->result;
            }
            function 
    div($num1,$num2){
                
    $this->number1 $num1;
                
    $this->number2 $num2;
                if(
    $this->number2 != 0){
                    
    $this->result $this->number1 $this->number2;
                    return 
    $this->result;
                }
                else{
                    echo 
    "cannot divide by zero";
                }
            }
        }
        
        
    $obj = new calculator;
        
        
    // call sum method
        
    $res $obj->sum(5,5);
        echo 
    $res."<br/>";
        
        
    // call sub method
        
    $res $obj->sub(5,5);
        echo 
    $res."<br/>";
        
        
    // call mul method
        
    $res $obj->mul(5,5);
        echo 
    $res."<br/>";
        
        
    // call div method
        
    $res $obj->div(5,2);
        echo 
    $res."<br/>";
    ?>


    لقد بدأنا بإنشاء صنف من خلال الكلمة المحجوزة class ثم اسمينا الصنف و calculator و بدأنا بكتابة محتويات الصنف

    بدأنا محتويات الصنف بتعريف 3 خصائص attribute للصنف و هي :
    كود PHP:
    // attribute
            
    var $number1;
            var 
    $number2;
            var 
    $result


    و هذه الخصائص سوف نتحكم بها من خلال الوظائف

    ثم بدأنا بتعريف الوظائف و كانت الوظيفة الأولى هي :

    كود PHP:
    function sum($num1,$num2){
                
    $this->number1 $num1;
                
    $this->number2 $num2;
                
    $this->result $this->number1 $this->number2;
                return 
    $this->result;
            } 


    و هذه الوظيفة كما تلاحظ هي عبارة عن دالة و لكن هذه الدالة موجودة داخل الصنف اي انها خاصة بالصنف نفسه و تستخدم للتحكم بخصائص الصنف و هذه الدالة كما تلاحظ تقوم بإستقبال مدخلين num1 و num2 و داخل الدالة قمنا بعملية جمع لكن سوف تلاحظ ان هناك شيء غريب في هذه الدالة و هو جمل مشابهة للتالي :
    كود PHP:
    $this->number1 $num1

    هذه الجملة تعني اجعل المتغير num1 الذي قمت بإستقباله كمدخل للدالة يتخزن في الخاصية number1 الخاصة بهذا الصنف و هنا تلاحظ اننا استخدمنا this$ و هو متغير من نوع خاص يدل على ان الذي بعده هو عبارة عن خاصية من خصائص الصنف فعندما نكتب :
    كود PHP:
    $this->number1


    او

    كود PHP:
    $this->number2


    او

    كود PHP:
    $this->result


    فهذا يعني ان هذه المتغيرات number1 و number2 و result هي خصائص للصنف و ليست متغيرات خارج الصنف
    ايضا يجب ان تلاحظ هنا اننا نتكتب للدلالة على الخاصية المتغير this$ ثم يتبعه الإشارة <- ثم يتبعه اسم الخاصية المعرفة في بداية الصنف مثل number1 او number2 او result لكن بدون الإشارة $

    نعود للوظيفة sum قمنا بإستقبال المدخلين ثم قمنا بتخزينهم في خصائص الصنف ثم اجرينا عليهم عملية الجمع و قمنا بتخزين الناتج في الخاصية result ثم قمنا بإرجاع قيمة ال result بإستخدام الكلمة return

    و تنطبق نفس العملية على باقي الوظائف داخل هذا الصنف و هي sub الخاصة بالطرح و mul الوظيفة الخاصة بالضرب و div الوظيفة الخاصة بالقسمة

    الآن بعد الإنتهاء من كتابة الكلاس ستجد اننا قمنا بكتابة التالي :

    كود PHP:
    $obj = new calculator;
        
        
    // call sum method
        
    $res $obj->sum(5,5);
        echo 
    $res."<br/>";
        
        
    // call sub method
        
    $res $obj->sub(5,5);
        echo 
    $res."<br/>";
        
        
    // call mul method
        
    $res $obj->mul(5,5);
        echo 
    $res."<br/>";
        
        
    // call div method
        
    $res $obj->div(5,2);
        echo 
    $res."<br/>"


    تلاحظ اننا كتبنا في السطر الأول :
    كود PHP:
    $obj = new calculator

    و هذه تعني انشأ كائن جديد من الصنف calculator لاحظ ان الصيغة هي كتابة اسم متغير الكائن و انا اسميته obj$ اي اختصار object ثم اشارة المساواه = ثم الكلمة المحجوزة new ثم اسم الصنف ثم فاصلة منقوطة

    عند كتابتنا هذه الجملة فإننا نقول اصنع لي نسخة تحتوي كل خصائص الصنف calculator و يجب ان تعلم هنا اننا نستطيع تعريف و صنع عدد لا نهائي من الكائنات و كل كائن سيكون له بياناته الخاصة لكن كل الكائنات لها نفس الخصائص و الوظائف لكنها تختلف في البيانات فقط

    الآن بعد ان قمنا بإنشاء كائن نستطيع التعامل مع الوظائف و التحكم بالخصائص الخاصة بالصنف الذي يتبع له هذا الكائن

    فمثلا اذا اردنا ان نجمع رقم رقمين بإستخدام خصائص و وظائف الصنف calculator فإننا لا نستطيع ذلك إلا بإستخدام كائن من هذا الصنف فلو حاولنا كتابة التالي مثلا :
    كود PHP:
    $res sum(5,5);
        echo 
    $res."<br/>"

    سوف ينتج لدينا خطأ لأن الدالة sum غير معرفة في البرنامج ككل لكنها معرفة داخل الصنف calculator اي اننا نحتاج الى كائن من هذا الصنف لإتمام العملية بنجاح فالطريقة الصحيحة هي الإستدعاء بإستخدام الكائن obj$ كالتالي :
    كود PHP:
    $res $obj->sum(5,5);
        echo 
    $res."<br/>"

    لاحظ هنا اننا قمنا بكتابة اسم الكائن و هو obj$ ثم الإشارة <- ثم اسم الدالة او الوظيفة الخاصة بالصنف و هذه هي طريقة استدعاء الوظائف و الخصائص بإستخدام الكائن

    و باقي العمليات على الوظائف الخاصة على صنف مشابه لعملية الجمع و بإمكانكم مشاهدة ناتج تنفيذ هذا الصنف من خلال الرابط التالي :
    http://www.al79n-php.info/less19/class.php

    بهذا اخواني اخواتي الكرام اكون قد وصلت معكم الى نهاية درس اليوم و الى لقاء اخر في الدرس القادم لكم مني اجمل تحية

    اخوكم : زيد مراد

  2. #2
    صديقه بنت الشديفات
    زائر

    افتراضي رد: [دورة php - الدرس التاسع عشر] - انشاء الأصناف classes و الكائنات objects

    اول شي يعطيك العافيه
    ممكن سؤال؟؟
    $this->number2;
    في مجال انو ما نكتبها داخل الجواب
    function sum(number1,number2){

    2result = number1 + number*

    return result;

    هيك يزبط ولا لا

  3. #3
    عضو مؤسس الصورة الرمزية Sc®ipt
    تاريخ التسجيل
    Nov 2008
    الدولة
    There's no place like 127.0.0.1
    العمر
    37
    المشاركات
    4,003

    افتراضي رد: [دورة php - الدرس التاسع عشر] - انشاء الأصناف classes و الكائنات objects

    اهلاا صديقة بنت شديفات

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

    ملاحظة : اسماء المتغيرات انتي بتكتبيها خطأ ,, يجب ان يبدأ اسم المتغير بالرمز $
    التعديل الأخير تم بواسطة Sc®ipt ; 02-01-2011 الساعة 03:14 PM

  4. #4
    صديقه بنت الشديفات
    زائر

    افتراضي رد: [دورة php - الدرس التاسع عشر] - انشاء الأصناف classes و الكائنات objects

    يسلمو زيد ومشكور على جهودك
    ان شاء الله بميزان حسناتك

  5. #5
    عضو مؤسس الصورة الرمزية Sc®ipt
    تاريخ التسجيل
    Nov 2008
    الدولة
    There's no place like 127.0.0.1
    العمر
    37
    المشاركات
    4,003

    افتراضي رد: [دورة php - الدرس التاسع عشر] - انشاء الأصناف classes و الكائنات objects

    تسلمي يا صديقة و منورة

  6. #6
    عضو جديد
    تاريخ التسجيل
    Feb 2011
    العمر
    35
    المشاركات
    1

    افتراضي رد: [دورة php - الدرس التاسع عشر] - انشاء الأصناف classes و الكائنات objects

    شكركم كتير علي هل المجهود يلي عملتواا وانشاء الله منقدر نفيد ونستفيد

  7. #7
    عضو مؤسس الصورة الرمزية Sc®ipt
    تاريخ التسجيل
    Nov 2008
    الدولة
    There's no place like 127.0.0.1
    العمر
    37
    المشاركات
    4,003

    افتراضي رد: [دورة php - الدرس التاسع عشر] - انشاء الأصناف classes و الكائنات objects

    اقتباس المشاركة الأصلية كتبت بواسطة في البال اغنيه مشاهدة المشاركة
    شكركم كتير علي هل المجهود يلي عملتواا وانشاء الله منقدر نفيد ونستفيد
    العفو و شكرا لمرورك

+ الرد على الموضوع

معلومات الموضوع

الأعضاء الذين يشاهدون هذا الموضوع

الذين يشاهدون الموضوع الآن: 1 (0 من الأعضاء و 1 زائر)

المواضيع المتشابهه

  1. [دورة php - الدرس الثامن عشر] - مقدمة الى البرمجة الموجهة للكائنات
    بواسطة Sc®ipt في المنتدى منتدى الدورات العلمية المتخصصه
    مشاركات: 2
    آخر مشاركة: 03-28-2011, 09:04 PM
  2. [دورة php - الدرس السابع عشر] - انشاء و برمجة الدوال functions
    بواسطة Sc®ipt في المنتدى منتدى الدورات العلمية المتخصصه
    مشاركات: 4
    آخر مشاركة: 01-28-2011, 08:22 PM
  3. [دورة php - الدرس السادس عشر] - اعادة استخدام الكود و ادراج الملفات
    بواسطة Sc®ipt في المنتدى منتدى الدورات العلمية المتخصصه
    مشاركات: 2
    آخر مشاركة: 01-28-2011, 06:22 PM
  4. [دورة php - الدرس الخامس عشر] - الجزء الثالث : دوال المصفوفات
    بواسطة Sc®ipt في المنتدى منتدى الدورات العلمية المتخصصه
    مشاركات: 3
    آخر مشاركة: 01-26-2011, 07:33 PM
  5. [دورة php - الدرس الرابع عشر] - الجزء الثاني : المصفوفات الحرفية و المركبة و تعريفها
    بواسطة Sc®ipt في المنتدى منتدى الدورات العلمية المتخصصه
    مشاركات: 4
    آخر مشاركة: 01-26-2011, 07:32 PM

الكلمات الدلالية لهذا الموضوع

مواقع النشر (المفضلة)

مواقع النشر (المفضلة)

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

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