بسم الله الرحمن الرحيم
سوف تتعلم لغة PHP بالكامل وسوف تشمل جميع ما تحتاجه لتعلم هذه اللغه, وسوف يكون تقسيم الدروس كالآتي :
لماذا تتعلم معنا ؟ سوف تتعلم من هذه الدروس كيفية عمل برامج PHP من أبسطها إلى أعقدها , مروراً من تعريف المتغيرات إلى إنشاء الدوال والكائنات البرمجيه وربطها مع بعضها البعض. يجب أن تكون لديك خبره في لغة HTML وقمت ببعض البرمجه من قبل ولا يعني أن تكون خبيرا جداً أو قمت ببرمجة مواقع أو قواعد بيانات. أما إذا كنت مبتدأ سوف تفيدك الدروس ولكن تحتاج إلى كثير من التركيز والتطبيق المتواصل ووقت أطول.
مقدار الإستفاده من تعلم PHP معنا
تعلمك معنا سوف يتيح لك بناء مواقع حقيقه وممتازه وسوف نحاول أن نقوم بتغطية جميع ما يتعلق بهذه اللغه. إذا استخدمت لغة HTML من قبل فمن المؤكد أنك لاحظت عدم ديناميكية الصفحات ولكن مع PHP سوف تلاحظ الفرق, وبعد الانتهاء من الدروس بالكامل سوف نقوم بعمل تطبيقات حقيقه يتم تقريرها لاحقا.
ماهي لغة PHP ؟
PHP عباره عن لغة تسمى ( Server Side Scripting Language ) ونعني بذلك أنها تترجم من جهة الخادم وليس من جهاز المستخدم.
لنضرب مثالا واقعياً على ذلك , عند الدخول إلى الدردشه يجب عليك أن تقوم بتحميل ((JAVA VM )) على جهازك لتتمكن من الدخول ولكن إذا قمت بزياره أي موقع يستخدم لغة PHP فلن يكون هناك حاجه لتنصيب أو تحميل أي برامج مساعده. فما وراء الكواليس كله يحصل في الخادم (( Server )), صممت هذه اللغه خصيصاً للمواقع. ومن ضمن صفحات HTML يمكنك إدراج لغة PHP بداخلها لكي تنفذ في كل مره قمت بزياره الصفحه.
بدأت لغة PHP بمجهود شخص واحد يسمى ( Rasmus Lerdorf ) في سنة 1994 ومرت بثلاث مراحل جذريه لنرى ماهي عليه الان, حتى أنه في سنة 2002 كان عدد المواقع التي تستخدمها اكثر من 9000000 ((تسعة مليون )) موقع. PHP لغة برمجة متاحه للكل لتطويرها أو العمل عليها وهذا ما يسمى ( Open Source ). قديما كان اختصار PHP هو ( Personal Home Page ) ولكن تغيرت إلى الاسم الحالي ( Hypertext Processor ). النسخه الحاليه للغة PHP هي 5 وقد حصل بها تطور كبير وتغيرات جذريه كبيره وأصبحت أقوى بكثير من ما هي عليه الان. (المزيد…)
تنصيب لغة PHP و الخادم الشخصي Apache و قاعدة البيانات MySQL: هل تذكر عندما قلنا أن لغة PHP تحتاج إلى مترجم لكي يقوم بمعرفة ما يقوم به الكود في الدرس الاول ؟ في هذه النقطه سوف تعرف كيف يتم تنصيب مترجم PHP , ولكن لا يستطيع مترجم PHP العمل بمفرده , لأنه يحتاج إلى خادم شخصي يكون به المترجم ليظهر المعلومات إلى المتصفح , ولهذا سوف نقوم بتركيب Apache وهو يعتبر من أفضل الخوادم الشخصيه الموجوده , لكي تقوم بإنهاء عناء تركيب هذه البرامج قامت مجموعه Appserv Network بعمل برنامج يقوم بتنصيب PHP و Apache و MySQL معاً , وحجم الملف صغير جدا مقارنة بتحميل كل برنامج على حده, لكن شرح تركيب هذا البرنامج هنا خارج عن نطاق موضوعنا ولذلك سوف تجد في مكتبة البرامج وصلة تحميل برنامج appserv و ايضا سوف تجد شرح خارجي لطريقة تركيب برنامج Appserv.
اختيار محرر مناسب لكتابة اكواد PHP :
يوجد كثير من البرامج لكتابة أكواد PHP ولكن لا اتحيز إلى واحد منهم بشكل معين , أنت كمبتدئ تحتاج إلى أن تكتب الكود البرمجي بإستخدام أحد هذه البرامج لأنها تساعد على تتبع الاخطاء وترتيب الكود البرمجي وتلوينه , وهذا يساعد كثيرا في البرمجه , لمشاهدة هذه البرامج اذهب الى صفحة برامج تحريرلغة PHP .
(المزيد…)
انواع البيانات:
الثوابــــت:
المعامــلات:
المعاملات الحسابيه
سوف نقوم الان بذكر معاملات المقارنه والمعاملات المنطقيه ولكن لن نقوم بعمل اي
تمارين عليها , وذلك لانها سوف تستعمل في الدرس القادم
معاملات المقارنـــــه :
المعاملات المنطقية :
ترتيب الاهميــــات:
اسئـــلة على الدرس :
الـــدرس الــقادم :
اهداف الدرس:
الطباعه بالعباره ECHO : يوجد شبيه للعباره print وهي العباره echo وتقوم بنفس عمل العباره print تماما ولكن لسهولة لغة PHP , فهي تمكنك من اختيار اي طريقة تريد الطباعة بها الى المتصفح , لاحظ الامثله التي سوف تأتي بعد قليل ولاحظ اننا استخدمنا العباره echo بدل من العباره print ولكن كل منهما يؤدي نفس الغرض ولا يوجد اي اختلاف ابدا
العباره الشرطيه IF :
تخيل ان لديك برنامج صغير , ولا تريد ان يتبع هذا الرنامج طريق واحد , نعني بذلك انه لدينا حالات في هذا البرنامج , وكل حاله لديها خواصها وتنفيذات معينه خاصه بها, لنضرب مثالا على ذلك لتسهيل الامر , لنرجع الى مثالنا الاول , تخيل ان لدينا بقاله صغيره, ولدينا انوع من العصيرات كل عصير له سعره المعين , وكل عصير لديه احجام مختلفه , هل نحتاج لان نضع كل عصير في برنامج ؟ وهل لو فعلنا ذلك سوف يعتبر الطريقة الامثل ؟ طبعا لا ,
لكن بمجرد عباره صغيره تسمى IF نستطيع فعل ذلك كله , ولكي تقوم بإستيعاب ذلك بشكل صحيح ارجو منك قراء موضوع المتغيرات والثوابت لكي توضح الصوره. العباره IF هي عباره شرطيه , اي اذا تحقق الشرط المعين افعل كذا وكذا , واذا لم يتحقق افعل كذا وكذا , هذا هو درس اليوم واتمنى لك فرصه سعيده. مهلا , بقي الكثير , وبقي من المتعه طريق طويل , اكيد انك سألت كيف اقوم بكتابة العباره الشرطية , طريقة كتابتها كالتالي
مع الامثله سوف توضح الصوره , لنأخذ مثالا حيا على طريقة عمل هذه الداله الشرطيه , وسوف يصل اليك المعنى, تخيل ان لديك كما قلنا بقاله , ولديك منتجات غذائية وتريد ان تعرف هل اخذ المشتري ببسي ام لاو واذا اخذ المشتري ببسي سوف نعمل له تخفيض بمبلغ نصف ريال , هل انت مستعد؟ , افتح محرر الاكواد واكتب التالي :
ارأيت السهوله ؟ لاحظ اننا استخدمنا عامل المقارنه ( == ) الذي تكلمنا عنه في الدرس السابق , هذا معناه هل الطرف الايمن يساوي الطرف الايسر ؟ لا تنسى انه يختلف تماما عن العلامه ( = ) لوحدها , فالعلامه ( = ) معناها تعيين او تعبئة متغير بالقيمه
الفلانية , ولكن ( == ) يستخدم لمقارنة الاطراف لنأخذ مثالا بطريقة اخرى , تخيل ان نود ان نعمل تخفيض 10 ريال لكل مشتري قام بشراء بمبلغ اكثر من 100 ريال ؟ فسوف يكون الكود بالشكل التالي
الى الان كل شي واضح ؟ اذن تخيل لو كان التخفيض على علبة الزيت و يكون اجمالي السعر 100 ريال ماذا سوف نفعل ؟ شاهد التالي
هل وضحت الصوره كامله الان ؟ اعتقد ذلك . لاحظ انه لو لم يتم تحقق الشرط فلن يتم عمل شي , ولو جربت تشغيل الكود فلن يكون هناك مخرج على الشاشه لو لم يتحقق الشرط
العباره الشرطيه ELSE :
انتهينا من مسألة IF الشرطية , ولكن كل اللي قمنا بفعله محدود اليس كذلك ؟
نستطيع فقط التحكم في شيء واحد , لكن لا تقلق يوجد لدينا العباره ELSE وتعني اذا تحقق هذا الشرط قم بعمل التالي , واذا لم يتحقق قم بعمل التالي , اليس ذلك صحيحا واحتماله كبير ؟ ولكن كيف يتم كتابته ؟ نفس الطريقة الاولى مع اضافة بعض الاسطر البرمجيه لاحظ طريقة الكتابه التاليه:
لنقم بتعديل كودنا الاول , انقوم بإخراجه بطريقة افضل من الاولى , اكتب في محرر الاكواد التالي :
لاحظ ان المشتري عندما كان خياره ببسي , اجرينا التخفيض وغير ذلك لا نعمل له اي تخفيض , ولاحظ اننا استعملنا معامل المقارنه (( =! )) ويعني انه في حالة عدم طلب هذا النوع قم بالتالي .
العباره الشرطيه ELSEIF :
لنرجع الى تخيالاتنا وهي التي تقوم بكل النتائج , لو اردنا ان نجعل التخفيض في اكثر من جهة , مثلا لو قام المشتري بأختيار ببسي فله تخيض بالقيمه الفلانيه , ولو اشترى ميرندا فله تخيض بالقيمه الفلانيه واذا قام بشراء سفن اب فله التخفيض الفلاني , هل يمكننا عمل ذلك ؟ نعم عن طريق العباره ELSEIF واختلافها عن ELSE انه في ELSEIF يمكنك تحديد شرط ولكن ELSE عامه ولا يوجد بها شروط , تكون كتابتها كالتالي
قم بفتح محرر الاكواد واكتب التالي :
نستطيع ان نقوم بإستخدام ELSEIF بشكل لا نهائي , يعتمد على استخدامنا وما يتطلبه , ولكن ELSE فقط نستطيع ان نقوم استخدامها مره واحده لانها عامه (( لاحظ في مثالنا قمنا بإستخدام ELSEIF مرتان )) و العباره ELSE مره واحد فقط .
ملاحظه: يمكن استخدام عبارة IF وداخلها IF وداخلها IF واترك لك الباب مفتوح لكي تقوم بإستكشاف ما اعنيه من هذه الملاحظه ( نفس الشيئ ينطبق على ELSEIF و ELSE )
اسئـــلة على الدرس :
الـــدرس الــقادم :
سوف نقوم في الدرس القادم بالتعلم على التكرار في لغة PHP بالتفصيل , انواعها وطريقة كتابتها , واستعمالها مع المعاملات المنطقيه و معاملات المقارنه
عبارة التكرار WHILE : بعد ان عرفنا العبارات الشريطة وكيفية تحديد مسار برنامجنا , نأتي الان الى عبارات التكرار , وكما يدل اسمها , فإننا نكرر شيء معين ونقوم بتكراره وتكراره, واستخدام هذه العباره له فوائد عديده وكبيره , تخيل ان لديك كود معين وتلاحظ انك تقوم بكتابة هذا الكود اكثر من مره , لكي تصل الى هدف معين , فلماذا لا تختصر الوقت وتجعل الكود يقوم بتكرار نفسه الى حد معين تقوم انت بتحديده , الا يتعبر ذلك اسهل واوفر من ناحية الوقت والتنفيذ ؟ وايضا الجهد الذي ستقوم بتوفيره لاكواد اخرى. ان ذلك لا يعني ان عبارة التكرار سهله او يمكن عملها في لحظات , عبارة التكرار يجب ان تفهم جيدا قبل كتابتها و التفكير في كيفية عملها والناتج الذي نريد الخروج به من عملها. هل تريد مثلالا على ذلك لتوضيح الصوره ؟ تخيل في بقالتنا الالكترونيه المشتري يقوم بشراء اكثر من منتج , ولكي حسابها يجب ان نجمع جميع المنتجات مع بعضها البعض وحساب المبلغ الكلي اليس ذلك صحيحا ؟ سوف نقوم بحسابها بالطريقة التاليه ( المنتج الاول + المنتج الثاني + المنتج الثالث + المنتج الرابع ) سوف نقوم بجمع كل منتج واضافته الى المجموع الكلي لنحصل على الناتج الكلي , اليس ذلك صحيحا ؟ سوف نتعلم كيف استخدام عبارة التكرار هذه ونأخذ عليها امثله كافيه لكي تتضح لك الصوره . طريقة كتابة عبارة WHILE الشرطيه كالتالي
لنأخذ بعض الامثله على طريقة كتابة عبارة التكرار WHILE , تخيل انك تريد طباعة
الارقام من 1 الى 5 , كم سطر سيتطلب من كتابته ؟ افتح محرر الاكواد وقم بكتابة كود يطبع من الرقم واحد الى الرقم 5 وقم بعدد الاسطر التي قمت بكتابتها , لاحظ الكود التالي :
لقد قمنا بكتابة 13 سطرا لكي نطبع من العدد 1 الى العدد 5 , تخيل لو اردنا الطباعه الى العدد 100 كم سطرا سيتطلب ذلك منا ؟ الا تظن ان ذلك سوف يتعبك بدنيا وعقليا !! وهنا تأتي فائدة عبارة التكرار WHILE لكي تساعدنا على تسهيل كتابة الكود , قم بمسح الكود السابق وانساه للابد وقم بكتابة الكود التالي ولاحظ الفرق :
كم سطرا قمنا بكتابته الان ؟ من غير التعليقات فقط 7 اسطر , ومع التعليقات 8 اسطر , فرق 5 اسطر عن الكود السابق , الا يعتبر ذلك انجازا , واذا لم تقتنع حاول ان تقوم بكتابة الاعداد من 1 الى 100 من غير استخدام التكرار , ولكن مع التكرار الذي يمكنك فعله ان تقوم بتغير الشرط من اقل من او يساوي 5 الى اقل من يساوي 100 وسوف يأتيك ناتجك بنفس عدد الاسطر ال7 فقط. اذا لم تقم بفهم كود التكرار سوف اقوم بشرحه لك لكي تضح الصوره. اقرا بتركيز من هنا , اولا : قمنا بتعيين متغير توجد به القيمة 1 واسمه x
وبعد ذلك نقوم بكتابة دالة التكرار وشرطها ان يكون المتغير x اقل من او يساوي 5 , ثم نقوم بطباغة المتغير الموجود لدينا , ونطبع سطر جديد للترتيب , واخيرا نقوم بزيادة المتغير بواحد ونرجع الى الاعلى لنرى هل الشرط صحيح ام لا , اذا كان صحيحا يقوم بفعل الطباعه مره اخرى واذا لم يكن صحيحا يقوم بالخروج من البرنامج. لنقم بالتفكير كمترجم
PHP ونقوم بعمل الكود سطرا سطرا , لاحظ التالي , المتغير x يساوي القيمه 1 , يوجد
لدي عباره تكرار وداخلها شرط وهو ان يكون المتغير x اقل من ويساوي 5 , قيمة المتغير x هي واحد والشرط ان يكون اقل من خمسه هل تحقق الشرط ؟ نعم هو صحيح , اذن ادخل العباره وقم بطباعة المتغير x , اقفز سطرا , قم بزيادة المتغير x بواحد , اصبح الان المتغير x قيمته 2 , ارجع الى الشرط مره اخرى , هل المتغير x اقل من 5 ؟ المتغير هو 2 والشرط هو اقل من ويساوي 5 اذن قم بطباعة المتغير واقفز سطرا وزد المتغير واحد , اصبح الان المتغير x يساوي العدد 3 , ………………………………….. زد المتغير واحد , اصبح الان المتغير يساوي 6 , ارجع الى الشرط , هل المتغير اقل من او يساوي 5 ؟ لا لم يتحقق الشرط اذن قم بالخروج من الكود . ويمكنك خارج حلقة التكرار ان تقوم بطباعة العباره انتهينا لكي تعرف ان التنفيذ تم .
مثال تطبيقي :
سؤال سريع , ماهو ناتج جمع الاعداد من 1 الى 100 ؟ الجواب هو الكود التالي :
حاول ان تقوم بقراءة الكود وحاول ان تفهمه جيدا وسوف توضح لك الصوره ماذا لو اردنا ان نجمع الاعداد الزوجيه لوحدها والاعداد الفرديه لوحدها ؟؟ فكر كيف سنقوم بذلك , بسيط جدا قم بإستخدام العباره الشرطيه IF داخل عبارة التكرار WHILE لاحظ التعديل على الكود وسوف تعرف الطريقه :
هل يوجد شيئ صعب في هذاالكود ؟ لا اعتقد ذلك , لان كل ما نقوم بفعله منطقي جدا
ملاحظه: يمكن استخدام عبارة WHILE وداخلها WHILE وداخلها WHILE وداخلها IF وكل شي تريد واترك لك الباب مفتوح لكي تقوم بإستكشاف ما اعنيه من هذه الملاحظه
اسئـــلة على الدرس :
الـــدرس الــقادم :
سوف نقوم في الدرس القادم بمعرفة معلومات عامه عن الدوال الشرطية , وعبارات التكرار منها SWTICH و FOR وسوف نقوم بمعرفة بعض ملامح ونصائح في لغة PHP
اهداف الدرس:
المسافات في لغة PHP: كما قلنا في دروس سابقه ان لغة PHP لغه مسامحه , حيث انه توفر لك العديد من المزايا , ولا اعلم بشكل صحيح 100% اذا كانت المسافات تعتبر من الاشياء مسامحه ام لا , ولكن اليك ما اعرفه , في لغة PHP المسافات لا تحسب , اعني بذلك انه عندما تقوم بكتابة الكود فلا يميز المترجم انه هناك مسافات في الكود او لا , بغض النظر عن النصوص عندما تضعها بين علامتي التنصيص ” ” سوف اقوم بكتابة كودين الان , ولاحظ الفرق بينهما , الاول بمسافات والثاني بدون مسافات :
وهنا نفس الكود لكن بدون مسافات :
قم بتشغيل الكود الاول والثاني , وسوف تلاحظ ان جميع المثالين اخرجا نفس الناتج بغض النظر عن المسافات
العباره الشرطية SWITCH :
تعلمنا في الدرس قبل السابق العباره الشرطيه IF وتوابعها والان سوف نتعلم العباره
SWITCH وهي تعمل بنفس طريقة العباره IF ولكن يتم كتابتها بطريقة اخرى ويتم تنفيذ شرط واحد فقط اما في IF فيمكن كتابة عدة شروط , لنرى كيفية الكتابه , انظر الصوره التاليه :
لنقم برؤية مثال على الطبيعه لتعرف كيفية عمل هذه الداله :
ارأيت الطريقه ؟ بسيطه اليس كذلك ؟ ولاحظ اننا نعني بأنه يمكن في العباره IF كتابة اكثر من شرط مثل if( $x == 1 && $y == 4 ) ولكن في العباره SWITCH يمكننا فقط مقارنة متغير واحد فقط switch ( $ x ) , وايضا يمكن ان تقوم بألغاء اخر سطرين ( في الصوره سطر رقم 18 و 19 ) ولا يتوجب كتابتها وهي تعني ( ELSE ) اي غير ذلك ( حينما لا يتحقق اي شرط من الشروط ) , وايضا يجب ان تتذكر انه دائما يجب عليك كتابة العباره BREAK بعد نهاية كل CASE في العبارة SWITCH ولا يتوجب وجودها في السطر الذي يحوي DEFAULT
عبارة التكرار FOR :
هناك عبارة تكرار اخرى غير العباره WHILE وهي العباره FOR , وتستخدم دائما اكثر من العباره WHILE لان ديناميكيتها اكبر من WHILE ولكن ناتج عمل الاثنين واحد , واذا عملت عباره بالاولى يمكن عملها بالثانيه والعكس , ولا يوجد ناتج تقوم بعمله في الاولى ولا تستطيع ان تقوم به في الثانيه , والقرار في الاخير يرجع الى المبرمج , لنرى طريقة الكتابه وهي كالتالي :
مثال على العباره , لنقم بالعد من 1 الى خمسه , مثلما فعلنا مع العباره WHILE ونرى ماهي الاختلافات :
في هذه المره قمنا بعملها فقط ب 5 اسطر , هل لاحظت الفروقات الان ؟ الفرق الاول في العباره WHILE اننا نحدد المتغير في البدايه , وزيادة المتغير داخل العباره, اما في العباره FOR فاننا نستطيع فعل ذلك كله بين القوسين التي يوجد بها الشروط , ونترك باقي العمل الى FOR , لا تنسى ان $i++ هي نفسها $i = $i + 1
عبارة التكرار DO…WHILE :
تختلف عبارة التكرار هذه عن اختها WHILE انها تقوم بتنفيذ الامر اولا , ثم بعد ذلك تقوم بمقارنة الشرط , وطريقة كتابتها كالتالي :
لنقم مره اخرى بكتابة الاعداد من 1 الى عشره ونرى الاختلاف , اكتب في محرر الاكواد التالي:
هل لاحظت الاختلاف ؟ فقط انه قمنا بطباعة العدد قبل التحقق من الشرط , والتغيير طفيف ويستخدم عند الحاجه , لا تقلق في التطبيقات المتقدمه سوف نشاهد بعض من هذه الحيل البرمجيه, ملاحظه : لا تقم ابدا بنسيان الفاصله المنقوطه بعد كتابة الشرط , والا سوف يكون هناك خطأ برمجي في الكود
عبارات داخل عبارات :
كما قلنا في دروس سابقه , يمكننا ادراج عبارات داخل عبارات , اي انه يمكنك كتابة العباره FOR وداخلها العباره FOR , او العباره WHILE وداخلها العباره FOR وداخلها IF كل ذلك سهل جدا , ويحتاج الى قليل من التركيز , سوف نقوم الان بعمل مثال تطبيقي يحتوي على عبارة تكرار وداخلها عبارة تكرار , لنقم بعمل جدول الضرب ونحاول مع بعضنا البعض كتابة الكود , لنقم بتسهيل الامر , قم بفتح برنامج Microsoft FrontPage في جهازك وقم بكتابة جدول الضرب العدد 2 من ( 1 – 5 ) , انظر الشكل التالي:
وعند مشاهدة محتوى كود ال HTML سوف ترى التالي :
الان قم بالتركيز معي لكي توضح الصوره , لو نظرت الى الكود بالاعلى تجد انه HTML فقط وتجد انه مكرر كثيرا , وانت تحتاج الى استخدام عبارات التكرار لتقم بتسهيل الموضوع على نفسك , اذن يجب ان تكتشف اماكن التكرار , دقق في الكود وحاول ان تعرف اماكن التكرار ……….. هل عرفت الاماكن ؟ انظر الى الكود التالي وسوف احدد لك اماكن التكرار
انظر الى الخطوط السوداء , ترى ان الوسم <tr> و الوسم </tr> يتكرران في كل مره ننشئ بها صف ( ROW ) جديد , اذن الان نحتاج الى دالة تكرار ونحتاج ان تقوم بالتكرار 5 مرات لاننا نريد جدول الضرب للعد 2 من ( 1 الى 5 ) ( قم بعد الخطوط السوداء وسوف تجد انها 5 خطوط ) , لكي نقوم بتكرار الاصفف , افتح محرر الاكواد واكتب التالي :
الان لقد عرفنا كيفية تكرار الاصفف , اذن لنظر الى صورة كود HTML مره ثانيه , وقم بالبحث عن تكرار جديد , اذا لم يوجد , فقد انتهينا , وان وجد فنحتاج الى ان نقوم بكتابة دالة التكرار مره اخرى , …………….. هل عرفت مكان التكرار الاخر ؟ انظر الى الصوره لترى اين هو
لاحظ هنا ان الوسم <td> و </td> يتكرر في كل مره نكتب بها عدد جديد , والوسم <TD> هو لكتابة الخلايا في الجدول , تكرر الوسم عندنا , وفي كل مره نقوم بكتابة الخليه مرتان , اذن نحتاج ان نقوم بالتكرار مرتان ( لاننا نريد جدول الضرب للعدد 2 ) , ارجع الى محرر الاكواد واكتب التالي ( بين وسم <tr> و </tr> ) ,
ما قمنا به هنا , اننا قمنا بتكرار الوسوم <td> على حسب العدد الذي نريد انشاء عملية الضرب له , لاحظ ان المتغير x شرطه ان يكون اقل من او يساوي العدد 2 لكي يستمر في التكرار , ولاحظ هنا اننا نقوم بعملية ضرب المتغير x والمتغير y في مكان كتابة محتوى الصف , لكي نقوم بكل شي تلقائيا , قم بتشغيل الكود وسوف يكون الناتج التالي :
ارأيت الان قمنا بكتابة جدول الضرب للعدد 2 بمجرد عبارتين تكرار صغيره ممتع جدا اليس كذلك ؟ لكن لم ننتهي بعد , لو نظرت الى كود ال HTML ترى اننا نريد كتابة العباره التاليه في الجدول ( مضروب في ) , لكي نقوم بإخراج الجدول بشكل افضل , انظر الى الصوره وستعرف ما اعنيه
كيف نقوم بذلك في دالتين التكرار , قم بوضع يدك على رأسك واستغرق في التفكير لمدة دقيقتان وانت تنظر الى الكود , واسأل نفسك , كيف سأقوم بعملها , وسوف يأتيك الجواب كالتالي , نقوم بكتابة العباره ( مضروب في ) في اول وسم <td> وفي اول وسم <tr> , يعني عندما يكون المتغير x يساوي 1 وعندما يكون المتغير y يساوي 1 , قمنا بحل المشكله وما نحتاجه هو عبارة IF الشرطية ويكون شرطها انه عندما يكون المتغير x يساوي 1 و المتغير y يساوي واحد , لا تقم بضرب المتغيرين بل قم بكتابة العباره ( مضروب في ) غير ذلك قم بضرب المتغيرين مع بعضهمها البعض , اذن ارجع الى محرر الاكواد وقم بتعديل الكود الى التالي:
وفي النهايه سوف يكون ناتج عملك الرائع هو الجدول التالي ,
اتمنى ان يكوني شرحي جعلك تفهم هذه النقاط جيدا , ولا تنسى انه يجب ان تقوم بمحاولة عمل اشياء انت تريدها , ولا تحصر التمارين على ما تراه هنا , لكي تقوم بالتوسع في البرمجه
اسئـــلة على الدرس :
الـــدرس الــقادم :
سوف نقوم في الدرس القادم بمعرفة معلومات عن بعض الدوال المفيده , ومعلومات عن الوسوم , وكتابة PHP مع HTML لكي تستعد الى الدخول الى عالم النماذج .
عبارة IF بطريقة اخرى : يمكنك كتابة العباره IF بطريقه اخرى , او نستطيع ان نقول طريقه اسرع , ويمكننا استعمالها عن طريق العباره التاليه ( ؟ ) , لم توضح الصوره كامله ؟ لنقم برؤية كيفية كتابتها , شاهد التالي :
الان تمعن في المثال التالي وسوف يمكنك ان ترى ان طريقتها سهله , افتح محرر الاكواد واكتب مايلي :
لاحظ هنا اننا نعرف متغير اسمه x ثم نقوم بمقارنة هذا المتغير , ونرى انه اذا يساوي 1
فكتب العباره ( one ) واذا لم ياسوي واحد فاكتب العباره ( Two ) , وكل هذا السطر البرمجي نضعه في المتغير $result , وذلك لان ناتج هذه العباره سوف نجعله في المتغير $result , ارأيت سهولة الكود ؟ جرب وحاول ان تغير كود من دروسنا السابقه بهذه الطريقة , ولاحظ الناتج , وسوف ترى انه نفس الناتج
بداية وسوم العبارات ونهايتها :
تعلمنا فيما سبق , انه اذا اردنا ان نقوم بكتابة الدوال فيجب علينا ان نستخدم الوسم ( }و { ) اليس ذلك صحيحا ؟ ولكن هناك طريقة اخرى لا نكتب بها الوسوم هذه وهي عندما يكون متضمن الجمله الشرطيه سطر واحد فقط , شاهد المثال التالي :
ولا يوجد هناك اختلاق اذا قمت بكتابة الوسوم ام لا اذا كان سطر واحد فقط , ولكن اذا كان محتوى العباره اكثر من سطر واحد , حينها يتوجب عليك ان تقوم بكتابة وسوم البدايه والنهايه
العباره EXIT :
تستخدم العباره exit للخروج من محتوى وسوم ( { و } ) , واعتقد انه لا تحتاج الى شرح مطول, فما تفعله هذه العباره هو ان تقوم بأخراجك من كود ال PHP كاملا , انظر الى الكود التالي
لاحظ انه هنا لم يقم بطباعة العبارة ( ARCCN ) مع ان العباره خارج الشروط , ويجب ان تنفذ , ولكن مع استخدام العباره EXIT قمنا بالخروج من كود PHP كاملا ( لم نخرج من العباره فقط )
العباره CONTINUE :
العباره continue سهله ايضا , وماتقوم به هو ان تقوم بإخراج من التكرار لمرة واحده في عبارة التكرار , كلام مبهم وغير واضح اليس كذلك ؟ ما اعنيه هنا , تخيل اننا نقوم بالتكرار 5 مرات , ونريد في المره الثالثه ان نخرج من التكرار ( لا نخرج من التكرار كاملا ) , فقط من التكرار رقم 3 , عند ذلك يمكننا استخدام العباره CONTINUE , لنأخذ مثالا على ذلك لتوضيع الصوره , معروف لدينا ان لا يمكن القسمه ابدا على العدد ( 0 ) اليس ذلك صحيحا ؟ تخيل انا اردنا ان نقوم بقسمة العدد 4 على ( 4 الى -4 ) ونريد ان نفعل ذلك بإستعمال اداة التكرار , ولكن نريد ان نخرج من التكرار عندما يكون معامل القسمه ( 0 ) فما نفعله هو التالي , افتح محرر الاكواد وقم بكتابة ما يلي :
لغة PHP مع HTML بطريقة اوسع :
رأينا في كثير من الامثله , اننا نقوم بكتابة كود ال HTML خارج كود لغة PHP , كمثالنا في جدول الضرب , وايضا يمكننا ان نقوم بكتابة لغة HTML مع لغة PHP واقصد بذلك استخدام العباره echo او print لنقوم بإخراج كود HTML , قم بمشاهدة المثال التالي , ( جدول الضرب معدل ) :
فقط يجب عليك ان تقوم بكتابة العباره echo او print في سطر ال HTML وان تضع علامتي التنصيص ” ” بين بداية ونهاية الكود . تذكر دائما ان عندما يكون هناك العلامه ( = ) في كود HTML يجب ان تقوم بوضع علامة \ قبل كل ” , لاحظ الكود في الاعلى , ما اقوم به هو ان اضع العلامه \ قبل ” انظر الى الكود التالي:
الـــدرس الــقادم : سوف نقوم في الدرس القادم بمعرفة بمعرفة النماذج , وسوف يكون معظم كلامنا عن لغة HTML وسوف نحاول ان نشمل جيمع ما يتعلق بالنماذج وارسالها وكيفية تطبيقها واستخدامها مع لغة PHP
سوف تتعلم لغة PHP بالكامل وسوف تشمل جميع ما تحتاجه لتعلم هذه اللغه, وسوف يكون تقسيم الدروس كالآتي :
- متطلبات قبل كل درس
- نقاط توضيحيه وأهداف الدرس
- الدرس بالكامل
- أسئله على الدرس
- الدرس القادم
- معرفة شبه تامه بلغة HTML
- الإخلاص في التعلم
- عدم التوقف بعد الإنتهاء من التعلم وإنما البحث عن الجديد ومحاولة التطوير الدائم للمهارات
- توفر بعض مهارات اللغه الانجليزية وذلك لأن بعض المصطلحات يصعب ترجمتها إلى العربية , أو معناها العربي لا يؤدي الغرض
- لماذا تتعلم معنا ؟
- ما مقدار الإستفاده من تعلم PHP معنا
- ماهي لغة PHP ؟
- قوة لغة PHP
لماذا تتعلم معنا ؟ سوف تتعلم من هذه الدروس كيفية عمل برامج PHP من أبسطها إلى أعقدها , مروراً من تعريف المتغيرات إلى إنشاء الدوال والكائنات البرمجيه وربطها مع بعضها البعض. يجب أن تكون لديك خبره في لغة HTML وقمت ببعض البرمجه من قبل ولا يعني أن تكون خبيرا جداً أو قمت ببرمجة مواقع أو قواعد بيانات. أما إذا كنت مبتدأ سوف تفيدك الدروس ولكن تحتاج إلى كثير من التركيز والتطبيق المتواصل ووقت أطول.
مقدار الإستفاده من تعلم PHP معنا
تعلمك معنا سوف يتيح لك بناء مواقع حقيقه وممتازه وسوف نحاول أن نقوم بتغطية جميع ما يتعلق بهذه اللغه. إذا استخدمت لغة HTML من قبل فمن المؤكد أنك لاحظت عدم ديناميكية الصفحات ولكن مع PHP سوف تلاحظ الفرق, وبعد الانتهاء من الدروس بالكامل سوف نقوم بعمل تطبيقات حقيقه يتم تقريرها لاحقا.
ماهي لغة PHP ؟
PHP عباره عن لغة تسمى ( Server Side Scripting Language ) ونعني بذلك أنها تترجم من جهة الخادم وليس من جهاز المستخدم.
لنضرب مثالا واقعياً على ذلك , عند الدخول إلى الدردشه يجب عليك أن تقوم بتحميل ((JAVA VM )) على جهازك لتتمكن من الدخول ولكن إذا قمت بزياره أي موقع يستخدم لغة PHP فلن يكون هناك حاجه لتنصيب أو تحميل أي برامج مساعده. فما وراء الكواليس كله يحصل في الخادم (( Server )), صممت هذه اللغه خصيصاً للمواقع. ومن ضمن صفحات HTML يمكنك إدراج لغة PHP بداخلها لكي تنفذ في كل مره قمت بزياره الصفحه.
بدأت لغة PHP بمجهود شخص واحد يسمى ( Rasmus Lerdorf ) في سنة 1994 ومرت بثلاث مراحل جذريه لنرى ماهي عليه الان, حتى أنه في سنة 2002 كان عدد المواقع التي تستخدمها اكثر من 9000000 ((تسعة مليون )) موقع. PHP لغة برمجة متاحه للكل لتطويرها أو العمل عليها وهذا ما يسمى ( Open Source ). قديما كان اختصار PHP هو ( Personal Home Page ) ولكن تغيرت إلى الاسم الحالي ( Hypertext Processor ). النسخه الحاليه للغة PHP هي 5 وقد حصل بها تطور كبير وتغيرات جذريه كبيره وأصبحت أقوى بكثير من ما هي عليه الان. (المزيد…)
الدرس الثاني: اول برنامج PHP
متطلبات قبل البدء- تحميل لغة PHP وخادم شخصي وقواعد بيانات MySQL
- تحميل محرر مناسب لكتابة البرامج بلغة PHP
- تنصيب لغة PHP وسيرفر Apache و قواعد بيانات MySQL
- أختيار محرر مناسب للكتابه
- كتابة اول برنامج PHP
- وسوم الكتابه في PHP
- الطباعه للمتصفح في PHP
- دمج PHP مع HTML
- التعليقات
تنصيب لغة PHP و الخادم الشخصي Apache و قاعدة البيانات MySQL: هل تذكر عندما قلنا أن لغة PHP تحتاج إلى مترجم لكي يقوم بمعرفة ما يقوم به الكود في الدرس الاول ؟ في هذه النقطه سوف تعرف كيف يتم تنصيب مترجم PHP , ولكن لا يستطيع مترجم PHP العمل بمفرده , لأنه يحتاج إلى خادم شخصي يكون به المترجم ليظهر المعلومات إلى المتصفح , ولهذا سوف نقوم بتركيب Apache وهو يعتبر من أفضل الخوادم الشخصيه الموجوده , لكي تقوم بإنهاء عناء تركيب هذه البرامج قامت مجموعه Appserv Network بعمل برنامج يقوم بتنصيب PHP و Apache و MySQL معاً , وحجم الملف صغير جدا مقارنة بتحميل كل برنامج على حده, لكن شرح تركيب هذا البرنامج هنا خارج عن نطاق موضوعنا ولذلك سوف تجد في مكتبة البرامج وصلة تحميل برنامج appserv و ايضا سوف تجد شرح خارجي لطريقة تركيب برنامج Appserv.
اختيار محرر مناسب لكتابة اكواد PHP :
يوجد كثير من البرامج لكتابة أكواد PHP ولكن لا اتحيز إلى واحد منهم بشكل معين , أنت كمبتدئ تحتاج إلى أن تكتب الكود البرمجي بإستخدام أحد هذه البرامج لأنها تساعد على تتبع الاخطاء وترتيب الكود البرمجي وتلوينه , وهذا يساعد كثيرا في البرمجه , لمشاهدة هذه البرامج اذهب الى صفحة برامج تحريرلغة PHP .
(المزيد…)
الدرس الثالث: المتغيرات , الثوابت و المعاملات
متطلبات قبل البدء :
- مراجعة الدرس الاول : اول برنامج PHP
- اختيار محرر كتابة الاكواد المناسب
اهداف الدرس :
- المتغيرات
- انواع البيانات
- الثوابت
- المعاملات
- ترتيب الاهميات
ما معنى متغير ؟ المتغير هو عباره عن مكان
او محتوى تضع فيه قيمة , تخيل كأس يمكن ان يحتوي ماء او عصير اليس ذلك
صحيحا ؟ نفس الشي ينطبق على المتغير هو مكان نحفظ به قيمة ( بيانات ) . اذن
كيف نقوم بتعريف متغير ؟ وكيف نحدد قيم المتغير ؟! في لغة PHP نقوم بتعريف
متغير عن طريق الرمز $ فمثلا لو قلنا اننا نريد ان نعرف متغيرا اسمه (
name ) ويحتوي على القيمه ( احمد ) فسوف نقوم بالتالي:
$name = “احمد”;
$name = “احمد”;
لكن يجب عليك الانتباه بأن اسماء المتغيرات
في لغة PHP لها حدود, نعني بذلك انه يوجد اسماء واحرف غير مسموحه لتعريف
المتغيرات, لنقوم بتسهيل الامر سنذكر المسموح منها وهو ( احرف ) و (
ارقام ) و ( _ ) فقط.
مثال على الاحرف : ( $name ) , مثال على الارقام : ( $223 ) , مثال على _ : ( $_name ) , ارأيت سهولة ذلك ؟ ولكن يفضل ان تكون الاسماء معبره لكي يسهل عليك كتابة البرنامج ويسهل على الغير فهم محتواه , فلو اردت ان تعرف متغير يحوي البريد الالكتروني فسوف يكون كالتالي ( $email ) او ( $user_email ) وليس من المنطقي ان يكون ( $2235 ) او ( $mobile ) على سبيل المثال. وتذكر ان يمكنك استخدام اي عدد من الحروف التي تريد , فهي ليست محدده
مثال على الاحرف : ( $name ) , مثال على الارقام : ( $223 ) , مثال على _ : ( $_name ) , ارأيت سهولة ذلك ؟ ولكن يفضل ان تكون الاسماء معبره لكي يسهل عليك كتابة البرنامج ويسهل على الغير فهم محتواه , فلو اردت ان تعرف متغير يحوي البريد الالكتروني فسوف يكون كالتالي ( $email ) او ( $user_email ) وليس من المنطقي ان يكون ( $2235 ) او ( $mobile ) على سبيل المثال. وتذكر ان يمكنك استخدام اي عدد من الحروف التي تريد , فهي ليست محدده
لو اردنا ان نقوم بتعريف متغير به القيمه 1
ومتغير اخر به القيمه 2 ماذا سوف نفعل ؟ سوف نقوم بتعريف المتغير الاول (
$number1 = 1; ) والمتغير الثاني ( $number2 = 2; ) , ماذا لو اردنا طباعته
الى المتصفح , بكل بساطه نقوم بعمل التالي: ( print $number1; ) و ( print
$number2; ) , لم تقتنع ؟ لم توضح الصوره ؟ مللت من الكلام ؟ لنقم بتسخين
ايدينا قليلا وقم بفتح محرر الاكواد اليك وقم بكتابة الكود التالي :
عند تنفيذ هذا الكود سوف يكون لدينا الناتج التالي :
اذن في المتغير number1 قمنا بوضع القيمه 1
وفي المتغير number2 قمنا بوضع القيمه 2 ( بإستخدام العلامه = ) وقمنا
بطباعة المتغيرات, فرأينا محتوى المتغيرات. اذن كأننا قلنا ( print 1; )
اليس كذلك ؟ لاحظ هنا ان السطور البرمجيه تنفذ سطرا سطرا , نعني بذلك اننا سنقوم بتنفيذ السطر رقم 3 ثم نقوم بتنفيذ السطر رقم 4.
لكن قد تتسائل , فقط نستطيع ان نقوم بوضع قيم ؟ هل يمكن ان نضع متغير في
متغير ؟ نعم يمكن ذلك بهذه الطريقه ( $number2 = $number1; ) ارأيت السهوله
والبساطه في الموضوع ؟ وسوف يقوم بطباعة الرقم 1 . قلنا قبل قليل ان
التنفيذ يكون سطرا سطرا اليس كذلك ؟ لنرى مثالا على ذلك , اكتب في محرر
الاكواد التالي :
قم بتجربة الملف ولاحظ الناتج , اذن لان
الاوامر تنفذ سطرا سطرا لم يقم المترجم بطباعة القيمه 2 , لان اخر قيمة
اسندت الى المتغير ( $number 2 ) هي قيمة المتغير ( $number1 ) , اعتقد ان
الامر قد اتضح الان , لا تنسى ان اسماء المتغيرات حساسه لحالة الاحرف
فالمتغير ( $number ) لا يساوي المتغير ( $Number ) .
انواع البيانات:
هل لاحظت في الامثله السابقه اننا قمنا
بطباعة ارقام ونصوص, اليس كذلك ؟ ولكن ماهي انواع البيانات التي تأخذها
المتغيرات وانواعها ؟ لدينا عدة انواع من المتغيرات الا وهي : ( نصوص =
string ) , ( ارقام = integer ) , ( ارقام عشريه = Double ) , ( المتغير
Boolean ) , ( مصفوفه = array ) , ( كائن = object ) , في بداية تعلمنا سوف
نقوم بالتعرف على النصوص والارقم العشرية والمتغير Boolean , اما الاخري
فسوف تكون في دروس متقدمه اخرى , لنأخذ امثله على هذه المتغيرات
مثال
|
الاسم
|
“Mohammad”
|
string
|
123
|
Integer
|
1.23
|
Double
|
True / False
|
Boolean
|
لاحظ اننا عندما نريد طباعة نص يجب ان نقوم بوضعه بين علامتي التنصيص ” ” او ‘ ‘
اي واحد منهما تقوم بإختياره , ولكن اذا بدأت بواحد منهم يجب ان ينتهي النص بنفسه فلا يصح ان نقول ( “mohammad’ ) ولكن الصحيح ( “mohammad” ) او ( ‘mohammad’ )
وضحت الصوره ؟
معلومه خارجيه : تسمى لغة PHP اللغه المسامحه ولذلك انك عند وضع القيمه داخل المتغير لا تحتاج ان تقوم بتحديد النوع , فإن المترجم يقوم بعرفة النوع من تلقاء نفسه , ماعليك فعله فقط ان تقوم بوضع علامة $ قبل اسم المتغير.
اي واحد منهما تقوم بإختياره , ولكن اذا بدأت بواحد منهم يجب ان ينتهي النص بنفسه فلا يصح ان نقول ( “mohammad’ ) ولكن الصحيح ( “mohammad” ) او ( ‘mohammad’ )
وضحت الصوره ؟
معلومه خارجيه : تسمى لغة PHP اللغه المسامحه ولذلك انك عند وضع القيمه داخل المتغير لا تحتاج ان تقوم بتحديد النوع , فإن المترجم يقوم بعرفة النوع من تلقاء نفسه , ماعليك فعله فقط ان تقوم بوضع علامة $ قبل اسم المتغير.
تخيل انك تريد معرفة نوع قيمة موجوده في
متغير , ماذا يجب عليك ان تفعل , امر بسيط جدا وهو ان تقوم بإستخدام الداله
gettype($var); وسوف تقوم هذه الداله بطباعة نوع المتغير الموجود لديك ,
لنأخذ امثله على ذلك , افتح محرر الاكواد وقم بكتابة التالي
وسوف يكون الناتج كما يلي :
لاحظ ان المتغير $test نوعه NULL وذلك لاننا لم نقم بتعيين اي قيمه له , ومعنى
NULL هو فراغ او لا شيء
NULL هو فراغ او لا شيء
ماذا لو اردنا تغيير قيمة متغير من نوع الى
اخر , من integer الى string فمالذي نفعله ؟ نقوم بإستخدام الداله
settype($var , new type ) لكي تقوم بالعمل المطلوب , لنأخذ مثالا لتوضيح
الصوره
والناتج هو :
والبقية نفس المنوال , فقط قم بوضع المتغير , ثم ضع النوع المراد التحويل اليه
هناك طريقة اخرى لتغيير نوع المتغير وتسمى ( Casting ) وهي بالطريقة التاليه :
قم بكتابة الكود وسوف ترى ان
النتيجه نفسها نتيجة عمل settype( $var , new type ) والاختلاف الوحيد ان
طريقة ( Casting ) لا تقوم بتغيير نوع المتغير الاساسي او فعليا , ولكن
تقوم بوضع نسخه من المتغير وتقوم بتغييرها الى النوع المراد , ولكن على عكس
الاخرى فهي تقوم بتغير النوع فعليا
هناك شي اخر وهو لو اردنا جمع
متغيرين مع بعضهما البعض في سطر واحد , فسوف نقوم بإستخدام ( . ) , لم توضح
الصوره وانا متأكد , لنأخذ مثال يبين لنا المعنى , افتح محرر الاكواد
مجددا وقم بكتابة التالي :
والناتج هو التالي:
الثوابــــت:
رأيت في السابق اننا نقوم بإنشاء متغيرات
ونقوم بتغيير انواعها والكثير من الامور ولكن يوجد لدينا الثوابت , ماهي
الثوابت ؟ من الاسم يمكنك ان تستنج انه متغير ثابت ولا يتغير ابدا مهما حصل
, قد تتسائل لماذا نحتاج الى هذه النوع من المتغيرات , والاجابه هي , تخيل
ان لدينا اسعار بعض من منتجاتنا , وهذه الاسعار ثابته ولا تتغير ؟ فسوف
نقوم بوضعها في الثوابت بالطريقه التاليه define( ‘var’ , value ) هل وضحت
الصوره ؟؟ لنأخذها بالعربيه define(‘اسم المتغير’ , القيمه ) , هل عرفت
الان الطريقة ؟ لنقم ببعض الامثله
,تخيل انه لدينا مطعم ونبيع الببسي بثلاث انواع , صغير وقيمته ريال واحد , وسط وقيمته ريالان , كبير وقيمته 3 ريالات , قم بكتابة التالي ,
,تخيل انه لدينا مطعم ونبيع الببسي بثلاث انواع , صغير وقيمته ريال واحد , وسط وقيمته ريالان , كبير وقيمته 3 ريالات , قم بكتابة التالي ,
والناتج هو التالي :
الفرق بين المتغيرات والثوابت , هي انه
عندما نريد ان نقوم بطباعة الثابت او استخدامه لا نقوم بوضع علامة $ في
الثابت ابدا , وايضا من الاسماء الممنوع استخدامها في متغيرات
لغة PHP الثوابت المعرفة في نفس اللغه , وهي ثابته ولا تتغير ولمشاهدتها قم بكتابة التالي في محرر الاكواد
لغة PHP الثوابت المعرفة في نفس اللغه , وهي ثابته ولا تتغير ولمشاهدتها قم بكتابة التالي في محرر الاكواد
وقم بتشغيل الملف وشاهد النتيجه . (( سوف تظهر لك صفحه يوجد بها اعدادات
هذه اللغه , لا تهتم لها الان فقط انظر الى الثوابت Variables ))
هذه اللغه , لا تهتم لها الان فقط انظر الى الثوابت Variables ))
المعامــلات:
لدينا ثلاث انواع من المعاملات في لغة PHP وهي المعاملات الحسابيه ,
معاملات المقارنه , المعاملات المنطقيه وسوف نتكلم عنها بالتفصيل
معاملات المقارنه , المعاملات المنطقيه وسوف نتكلم عنها بالتفصيل
المعاملات الحسابيه
المعاملات الحسابيه الاعتياديه
نتيجة المثال
|
مثال
|
الاسم
|
المعامل
|
2
|
1+1
|
جمع
|
+
|
0
|
1-1
|
طرح
|
–
|
6
|
2*3
|
ضرب
|
*
|
3
|
6/2
|
قسمه
|
/
|
1
|
10%3
|
باقي القسمه
|
%
|
معاملات حسابيه اخرى :
تساوي
|
مثال
|
العمليه
|
$x = $x + 5
|
$x +=5
|
+=
|
$x = $x – 5
|
$x -=5
|
-=
|
$x = $x * 5
|
$x *= 5
|
*=
|
$x = $x / 5
|
$x /= 5
|
/=
|
$x = $x % 5
|
$x % = 5
|
%=
|
$x = $x + 1
|
$x++
|
++
|
$x = $x – 1
|
$x–
|
—
|
شيء مخيف اليس كذلك ؟ بالعكس انه سهل جدا ,
كأنك تقوم بتعلم الرياضيات للمرحله الاولى , لنقم بكتابة بعض الاكواد وسوف
ترى كيفية سهولة الامر , افتح محر الاكواد ولنقم بعمل بعض من تمارين
العمليات الحسابيه الاعتياديه :
ارأيت سهولة الامر ؟ فقط عليك ان تقوم بذكر
رموز العمليات وسوف يكون لديك الناتج , لنقم الان ببعض تمارين المعاملات
الحسابيه الاخرى , قم بكتابة التالي :
لاحظ اننا هنا قمنا بتغيير قمية محتوى
المتغير الاساسية , وليس مؤقتا , قم بتجربة العمليات الاخرى , حتى ولو كانت
هناك بعض الاخطاء , قم بالتكرار ومحاولة معرفة الخطأ وسوف تفهم جميع
الاكواد السابقه.
سوف نقوم الان بذكر معاملات المقارنه والمعاملات المنطقيه ولكن لن نقوم بعمل اي
تمارين عليها , وذلك لانها سوف تستعمل في الدرس القادم
معاملات المقارنـــــه :
المعنى
|
المعامل
|
يساوي
|
= =
|
لا يساوي
|
!=
|
يساوي ومن نفس النوع
|
= = =
|
اكبر من
|
>
|
اكبر من ويساوي
|
>=
|
اصغر من
|
<
|
اصغر من ويساوي
|
<=
|
المعاملات المنطقية :
النتيجه
|
مثال
|
يكون صحيح عند
|
الاسم
|
المعامل
|
true
|
true || false
|
احد الطرفين صحيح
|
او
|
||
|
true
|
true OR false
|
احد الطرفين صحيح
|
او
|
OR
|
false
|
true && false
|
كل الطرفين صحيحه
|
و
|
&&
|
false
|
true AND false
|
كل الطرفين صحيحه
|
و
|
AND
|
false
|
true xor true
|
احد الطرفين صحيح وليس الاثنان
|
xor
|
xor
|
false
|
!ture
|
الطرف ليس صحيح
|
لا
|
!
|
قد تتسائل لماذا يوجد لكل نوع اثنان من الاشكال ؟ والجواب سوف يكون في القسم التالي وهو ترتيب الاهميات
ترتيب الاهميــــات:
عند استخدام المعاملات يقوم المترجم
بالقراء من اليمين الى اليسار في الحالات العاديه وعند استخدام معامل واحد ,
ولكن تخيل لدينا اكثر من معامل في سطر برمجي واحد ؟ هنا يقوم المترجم
بالاختيار حسب الاهميه , لنأخذ مثال على ذلك , تخيل ان لديك العمليه
التاليه :
4 + 5 فماهو الناتج ؟؟؟ الناتج واضح وليس به اي غموض وهو 9
ولكن تخيل لو لديك العمليه التاليه 4 + 5 * 2 ؟؟؟ فما هو ناتج العمليه الحسابيه ؟ الجواب هو 14 , لان المترجم قرأ عملية الضرب اولا ثم عملية الجمع , ويمكن ان تقوم بإجبار المترجم على قراء عملية الجمع اولا بإستخدام الاقواس , مثال : ( 4 + 5 ) * 2 وسوف يكون الناتج 18
, في الجدول التالي سوف تقوم بمعرفة الاهميات وترتيبها وماهي المعاملات التي تنفذ
قبل الاخرى ( من الاعلى الى الاسفل )
ولكن تخيل لو لديك العمليه التاليه 4 + 5 * 2 ؟؟؟ فما هو ناتج العمليه الحسابيه ؟ الجواب هو 14 , لان المترجم قرأ عملية الضرب اولا ثم عملية الجمع , ويمكن ان تقوم بإجبار المترجم على قراء عملية الجمع اولا بإستخدام الاقواس , مثال : ( 4 + 5 ) * 2 وسوف يكون الناتج 18
, في الجدول التالي سوف تقوم بمعرفة الاهميات وترتيبها وماهي المعاملات التي تنفذ
قبل الاخرى ( من الاعلى الى الاسفل )
المعامل
|
++ , — , (cast)
|
/ , * , %
|
+ , –
|
< , <= , => , >
|
= = , = = = , !=
|
&&
|
||
|
= , += , -= , /= , *= , %= , .=
|
AND
|
xor
|
OR
|
لا تتعجل بالحكم على ان اللغه صعبه , يمكن
ان لا اكون قد وضحت فكرة الشرح بشكل جيد , او لم يكن القائي جيدا , ولكن
اعدك في الدرس القادم انك سوف تعرف معنى هذه المتغيرات وكيفية
استعاملها , ومع الدرس القادم , تبدأ به متعة لغة PHP
استعاملها , ومع الدرس القادم , تبدأ به متعة لغة PHP
اسئـــلة على الدرس :
- اي من اسماء المتغيرات التاليه غير مسموح في لغة PHP :
$name
$22name65
$first name
$last-name
$______________ARCCN____________
2. ماهو ناتج العمليات التاليه :
4+5+6*(2*4)
2+9*8
3. قم بإنشاء متغير من نوع ( integer ) وقم بتحويله الى كل الانواع التي مرت
عليك , مره بإستخدام الداله settype ومره بإستخدام ( Casting ) ولاحظ الفرق بينهما
عليك , مره بإستخدام الداله settype ومره بإستخدام ( Casting ) ولاحظ الفرق بينهما
الـــدرس الــقادم :
سوف نقوم في الدرس القادم بالتعلم على
الشروط في لغة PHP بالتفصيل ,انواعها وطريقة كتابتها , واستعمالها مع
المعاملات المنطقيه و معاملات المقارنه .
الدرس الرابع: العبارات الشرطيه
متطلبات قبل البدء :اهداف الدرس:
- الطباعه بالعباره ECHO
- العباره الشرطيه IF
- العباره الشرطيه ELSE
- العباره الشرطيه ELSEIF
- استخدامات العبارات الشرطيه مع المعاملات المنطقيه ومعاملات المقارنه
الطباعه بالعباره ECHO : يوجد شبيه للعباره print وهي العباره echo وتقوم بنفس عمل العباره print تماما ولكن لسهولة لغة PHP , فهي تمكنك من اختيار اي طريقة تريد الطباعة بها الى المتصفح , لاحظ الامثله التي سوف تأتي بعد قليل ولاحظ اننا استخدمنا العباره echo بدل من العباره print ولكن كل منهما يؤدي نفس الغرض ولا يوجد اي اختلاف ابدا
العباره الشرطيه IF :
تخيل ان لديك برنامج صغير , ولا تريد ان يتبع هذا الرنامج طريق واحد , نعني بذلك انه لدينا حالات في هذا البرنامج , وكل حاله لديها خواصها وتنفيذات معينه خاصه بها, لنضرب مثالا على ذلك لتسهيل الامر , لنرجع الى مثالنا الاول , تخيل ان لدينا بقاله صغيره, ولدينا انوع من العصيرات كل عصير له سعره المعين , وكل عصير لديه احجام مختلفه , هل نحتاج لان نضع كل عصير في برنامج ؟ وهل لو فعلنا ذلك سوف يعتبر الطريقة الامثل ؟ طبعا لا ,
لكن بمجرد عباره صغيره تسمى IF نستطيع فعل ذلك كله , ولكي تقوم بإستيعاب ذلك بشكل صحيح ارجو منك قراء موضوع المتغيرات والثوابت لكي توضح الصوره. العباره IF هي عباره شرطيه , اي اذا تحقق الشرط المعين افعل كذا وكذا , واذا لم يتحقق افعل كذا وكذا , هذا هو درس اليوم واتمنى لك فرصه سعيده. مهلا , بقي الكثير , وبقي من المتعه طريق طويل , اكيد انك سألت كيف اقوم بكتابة العباره الشرطية , طريقة كتابتها كالتالي
مع الامثله سوف توضح الصوره , لنأخذ مثالا حيا على طريقة عمل هذه الداله الشرطيه , وسوف يصل اليك المعنى, تخيل ان لديك كما قلنا بقاله , ولديك منتجات غذائية وتريد ان تعرف هل اخذ المشتري ببسي ام لاو واذا اخذ المشتري ببسي سوف نعمل له تخفيض بمبلغ نصف ريال , هل انت مستعد؟ , افتح محرر الاكواد واكتب التالي :
ارأيت السهوله ؟ لاحظ اننا استخدمنا عامل المقارنه ( == ) الذي تكلمنا عنه في الدرس السابق , هذا معناه هل الطرف الايمن يساوي الطرف الايسر ؟ لا تنسى انه يختلف تماما عن العلامه ( = ) لوحدها , فالعلامه ( = ) معناها تعيين او تعبئة متغير بالقيمه
الفلانية , ولكن ( == ) يستخدم لمقارنة الاطراف لنأخذ مثالا بطريقة اخرى , تخيل ان نود ان نعمل تخفيض 10 ريال لكل مشتري قام بشراء بمبلغ اكثر من 100 ريال ؟ فسوف يكون الكود بالشكل التالي
الى الان كل شي واضح ؟ اذن تخيل لو كان التخفيض على علبة الزيت و يكون اجمالي السعر 100 ريال ماذا سوف نفعل ؟ شاهد التالي
هل وضحت الصوره كامله الان ؟ اعتقد ذلك . لاحظ انه لو لم يتم تحقق الشرط فلن يتم عمل شي , ولو جربت تشغيل الكود فلن يكون هناك مخرج على الشاشه لو لم يتحقق الشرط
العباره الشرطيه ELSE :
انتهينا من مسألة IF الشرطية , ولكن كل اللي قمنا بفعله محدود اليس كذلك ؟
نستطيع فقط التحكم في شيء واحد , لكن لا تقلق يوجد لدينا العباره ELSE وتعني اذا تحقق هذا الشرط قم بعمل التالي , واذا لم يتحقق قم بعمل التالي , اليس ذلك صحيحا واحتماله كبير ؟ ولكن كيف يتم كتابته ؟ نفس الطريقة الاولى مع اضافة بعض الاسطر البرمجيه لاحظ طريقة الكتابه التاليه:
لنقم بتعديل كودنا الاول , انقوم بإخراجه بطريقة افضل من الاولى , اكتب في محرر الاكواد التالي :
لاحظ ان المشتري عندما كان خياره ببسي , اجرينا التخفيض وغير ذلك لا نعمل له اي تخفيض , ولاحظ اننا استعملنا معامل المقارنه (( =! )) ويعني انه في حالة عدم طلب هذا النوع قم بالتالي .
العباره الشرطيه ELSEIF :
لنرجع الى تخيالاتنا وهي التي تقوم بكل النتائج , لو اردنا ان نجعل التخفيض في اكثر من جهة , مثلا لو قام المشتري بأختيار ببسي فله تخيض بالقيمه الفلانيه , ولو اشترى ميرندا فله تخيض بالقيمه الفلانيه واذا قام بشراء سفن اب فله التخفيض الفلاني , هل يمكننا عمل ذلك ؟ نعم عن طريق العباره ELSEIF واختلافها عن ELSE انه في ELSEIF يمكنك تحديد شرط ولكن ELSE عامه ولا يوجد بها شروط , تكون كتابتها كالتالي
قم بفتح محرر الاكواد واكتب التالي :
نستطيع ان نقوم بإستخدام ELSEIF بشكل لا نهائي , يعتمد على استخدامنا وما يتطلبه , ولكن ELSE فقط نستطيع ان نقوم استخدامها مره واحده لانها عامه (( لاحظ في مثالنا قمنا بإستخدام ELSEIF مرتان )) و العباره ELSE مره واحد فقط .
ملاحظه: يمكن استخدام عبارة IF وداخلها IF وداخلها IF واترك لك الباب مفتوح لكي تقوم بإستكشاف ما اعنيه من هذه الملاحظه ( نفس الشيئ ينطبق على ELSEIF و ELSE )
اسئـــلة على الدرس :
- قم بتطوير بقالتنا الالكترونيه , بحيث انه اذا طلب المشتري مشروبات
يكون له تخفيض معين على حسب المشروب الذي يقوم بشراءه ( ببسي , ميرندا ,
سفن اب ) , واذا قام بشراء غير ذلك فلا يوجد له تخفيض معين ( مساعده قم
بإستخدام
IF بداخلها IF وشروطها اللازمه )
الـــدرس الــقادم :
سوف نقوم في الدرس القادم بالتعلم على التكرار في لغة PHP بالتفصيل , انواعها وطريقة كتابتها , واستعمالها مع المعاملات المنطقيه و معاملات المقارنه
الدرس الخامس: عبارات التكرار
متطلبات قبل البدء :- لا يوجد
- عبارة التكرار WHILE
- مثال تطبيقي
عبارة التكرار WHILE : بعد ان عرفنا العبارات الشريطة وكيفية تحديد مسار برنامجنا , نأتي الان الى عبارات التكرار , وكما يدل اسمها , فإننا نكرر شيء معين ونقوم بتكراره وتكراره, واستخدام هذه العباره له فوائد عديده وكبيره , تخيل ان لديك كود معين وتلاحظ انك تقوم بكتابة هذا الكود اكثر من مره , لكي تصل الى هدف معين , فلماذا لا تختصر الوقت وتجعل الكود يقوم بتكرار نفسه الى حد معين تقوم انت بتحديده , الا يتعبر ذلك اسهل واوفر من ناحية الوقت والتنفيذ ؟ وايضا الجهد الذي ستقوم بتوفيره لاكواد اخرى. ان ذلك لا يعني ان عبارة التكرار سهله او يمكن عملها في لحظات , عبارة التكرار يجب ان تفهم جيدا قبل كتابتها و التفكير في كيفية عملها والناتج الذي نريد الخروج به من عملها. هل تريد مثلالا على ذلك لتوضيح الصوره ؟ تخيل في بقالتنا الالكترونيه المشتري يقوم بشراء اكثر من منتج , ولكي حسابها يجب ان نجمع جميع المنتجات مع بعضها البعض وحساب المبلغ الكلي اليس ذلك صحيحا ؟ سوف نقوم بحسابها بالطريقة التاليه ( المنتج الاول + المنتج الثاني + المنتج الثالث + المنتج الرابع ) سوف نقوم بجمع كل منتج واضافته الى المجموع الكلي لنحصل على الناتج الكلي , اليس ذلك صحيحا ؟ سوف نتعلم كيف استخدام عبارة التكرار هذه ونأخذ عليها امثله كافيه لكي تتضح لك الصوره . طريقة كتابة عبارة WHILE الشرطيه كالتالي
لنأخذ بعض الامثله على طريقة كتابة عبارة التكرار WHILE , تخيل انك تريد طباعة
الارقام من 1 الى 5 , كم سطر سيتطلب من كتابته ؟ افتح محرر الاكواد وقم بكتابة كود يطبع من الرقم واحد الى الرقم 5 وقم بعدد الاسطر التي قمت بكتابتها , لاحظ الكود التالي :
لقد قمنا بكتابة 13 سطرا لكي نطبع من العدد 1 الى العدد 5 , تخيل لو اردنا الطباعه الى العدد 100 كم سطرا سيتطلب ذلك منا ؟ الا تظن ان ذلك سوف يتعبك بدنيا وعقليا !! وهنا تأتي فائدة عبارة التكرار WHILE لكي تساعدنا على تسهيل كتابة الكود , قم بمسح الكود السابق وانساه للابد وقم بكتابة الكود التالي ولاحظ الفرق :
كم سطرا قمنا بكتابته الان ؟ من غير التعليقات فقط 7 اسطر , ومع التعليقات 8 اسطر , فرق 5 اسطر عن الكود السابق , الا يعتبر ذلك انجازا , واذا لم تقتنع حاول ان تقوم بكتابة الاعداد من 1 الى 100 من غير استخدام التكرار , ولكن مع التكرار الذي يمكنك فعله ان تقوم بتغير الشرط من اقل من او يساوي 5 الى اقل من يساوي 100 وسوف يأتيك ناتجك بنفس عدد الاسطر ال7 فقط. اذا لم تقم بفهم كود التكرار سوف اقوم بشرحه لك لكي تضح الصوره. اقرا بتركيز من هنا , اولا : قمنا بتعيين متغير توجد به القيمة 1 واسمه x
وبعد ذلك نقوم بكتابة دالة التكرار وشرطها ان يكون المتغير x اقل من او يساوي 5 , ثم نقوم بطباغة المتغير الموجود لدينا , ونطبع سطر جديد للترتيب , واخيرا نقوم بزيادة المتغير بواحد ونرجع الى الاعلى لنرى هل الشرط صحيح ام لا , اذا كان صحيحا يقوم بفعل الطباعه مره اخرى واذا لم يكن صحيحا يقوم بالخروج من البرنامج. لنقم بالتفكير كمترجم
PHP ونقوم بعمل الكود سطرا سطرا , لاحظ التالي , المتغير x يساوي القيمه 1 , يوجد
لدي عباره تكرار وداخلها شرط وهو ان يكون المتغير x اقل من ويساوي 5 , قيمة المتغير x هي واحد والشرط ان يكون اقل من خمسه هل تحقق الشرط ؟ نعم هو صحيح , اذن ادخل العباره وقم بطباعة المتغير x , اقفز سطرا , قم بزيادة المتغير x بواحد , اصبح الان المتغير x قيمته 2 , ارجع الى الشرط مره اخرى , هل المتغير x اقل من 5 ؟ المتغير هو 2 والشرط هو اقل من ويساوي 5 اذن قم بطباعة المتغير واقفز سطرا وزد المتغير واحد , اصبح الان المتغير x يساوي العدد 3 , ………………………………….. زد المتغير واحد , اصبح الان المتغير يساوي 6 , ارجع الى الشرط , هل المتغير اقل من او يساوي 5 ؟ لا لم يتحقق الشرط اذن قم بالخروج من الكود . ويمكنك خارج حلقة التكرار ان تقوم بطباعة العباره انتهينا لكي تعرف ان التنفيذ تم .
مثال تطبيقي :
سؤال سريع , ماهو ناتج جمع الاعداد من 1 الى 100 ؟ الجواب هو الكود التالي :
حاول ان تقوم بقراءة الكود وحاول ان تفهمه جيدا وسوف توضح لك الصوره ماذا لو اردنا ان نجمع الاعداد الزوجيه لوحدها والاعداد الفرديه لوحدها ؟؟ فكر كيف سنقوم بذلك , بسيط جدا قم بإستخدام العباره الشرطيه IF داخل عبارة التكرار WHILE لاحظ التعديل على الكود وسوف تعرف الطريقه :
هل يوجد شيئ صعب في هذاالكود ؟ لا اعتقد ذلك , لان كل ما نقوم بفعله منطقي جدا
ملاحظه: يمكن استخدام عبارة WHILE وداخلها WHILE وداخلها WHILE وداخلها IF وكل شي تريد واترك لك الباب مفتوح لكي تقوم بإستكشاف ما اعنيه من هذه الملاحظه
اسئـــلة على الدرس :
- قم بعمل برنامج لحساب درجات الطلاب , حيث ضع افتراضا عشر درجات لطلاب (
$student4_grade
) (
$student3_grade )
( $student2_grade
) (
$student1_grade )
( $student10_grade
) …….. (
$student5_grade )
وقم بحساب معدل الطلاب عن طريق عبارة التكرار While ( مساعده : معدل الطلاب = مجموع الدرجات ÷ عددها ) - قم بالتعديل على برنامج السؤال الاول , حيث تقوم بحساب معدل الدرجات الزوجيه , ومعدل الدرجات الفردية
الـــدرس الــقادم :
سوف نقوم في الدرس القادم بمعرفة معلومات عامه عن الدوال الشرطية , وعبارات التكرار منها SWTICH و FOR وسوف نقوم بمعرفة بعض ملامح ونصائح في لغة PHP
الدرس السادس: عبارات شرطيه وتكرار اخرى
متطلبات قبل البدأ :اهداف الدرس:
- المسافات في لغة PHP
- العباره الشرطية SWITCH
- عبارة التكرار FOR
- عبارة التكرار DO…WHILE
- عبارات داخل عبارات
- مثال تطبيقي
المسافات في لغة PHP: كما قلنا في دروس سابقه ان لغة PHP لغه مسامحه , حيث انه توفر لك العديد من المزايا , ولا اعلم بشكل صحيح 100% اذا كانت المسافات تعتبر من الاشياء مسامحه ام لا , ولكن اليك ما اعرفه , في لغة PHP المسافات لا تحسب , اعني بذلك انه عندما تقوم بكتابة الكود فلا يميز المترجم انه هناك مسافات في الكود او لا , بغض النظر عن النصوص عندما تضعها بين علامتي التنصيص ” ” سوف اقوم بكتابة كودين الان , ولاحظ الفرق بينهما , الاول بمسافات والثاني بدون مسافات :
وهنا نفس الكود لكن بدون مسافات :
قم بتشغيل الكود الاول والثاني , وسوف تلاحظ ان جميع المثالين اخرجا نفس الناتج بغض النظر عن المسافات
العباره الشرطية SWITCH :
تعلمنا في الدرس قبل السابق العباره الشرطيه IF وتوابعها والان سوف نتعلم العباره
SWITCH وهي تعمل بنفس طريقة العباره IF ولكن يتم كتابتها بطريقة اخرى ويتم تنفيذ شرط واحد فقط اما في IF فيمكن كتابة عدة شروط , لنرى كيفية الكتابه , انظر الصوره التاليه :
لنقم برؤية مثال على الطبيعه لتعرف كيفية عمل هذه الداله :
ارأيت الطريقه ؟ بسيطه اليس كذلك ؟ ولاحظ اننا نعني بأنه يمكن في العباره IF كتابة اكثر من شرط مثل if( $x == 1 && $y == 4 ) ولكن في العباره SWITCH يمكننا فقط مقارنة متغير واحد فقط switch ( $ x ) , وايضا يمكن ان تقوم بألغاء اخر سطرين ( في الصوره سطر رقم 18 و 19 ) ولا يتوجب كتابتها وهي تعني ( ELSE ) اي غير ذلك ( حينما لا يتحقق اي شرط من الشروط ) , وايضا يجب ان تتذكر انه دائما يجب عليك كتابة العباره BREAK بعد نهاية كل CASE في العبارة SWITCH ولا يتوجب وجودها في السطر الذي يحوي DEFAULT
عبارة التكرار FOR :
هناك عبارة تكرار اخرى غير العباره WHILE وهي العباره FOR , وتستخدم دائما اكثر من العباره WHILE لان ديناميكيتها اكبر من WHILE ولكن ناتج عمل الاثنين واحد , واذا عملت عباره بالاولى يمكن عملها بالثانيه والعكس , ولا يوجد ناتج تقوم بعمله في الاولى ولا تستطيع ان تقوم به في الثانيه , والقرار في الاخير يرجع الى المبرمج , لنرى طريقة الكتابه وهي كالتالي :
مثال على العباره , لنقم بالعد من 1 الى خمسه , مثلما فعلنا مع العباره WHILE ونرى ماهي الاختلافات :
في هذه المره قمنا بعملها فقط ب 5 اسطر , هل لاحظت الفروقات الان ؟ الفرق الاول في العباره WHILE اننا نحدد المتغير في البدايه , وزيادة المتغير داخل العباره, اما في العباره FOR فاننا نستطيع فعل ذلك كله بين القوسين التي يوجد بها الشروط , ونترك باقي العمل الى FOR , لا تنسى ان $i++ هي نفسها $i = $i + 1
عبارة التكرار DO…WHILE :
تختلف عبارة التكرار هذه عن اختها WHILE انها تقوم بتنفيذ الامر اولا , ثم بعد ذلك تقوم بمقارنة الشرط , وطريقة كتابتها كالتالي :
لنقم مره اخرى بكتابة الاعداد من 1 الى عشره ونرى الاختلاف , اكتب في محرر الاكواد التالي:
هل لاحظت الاختلاف ؟ فقط انه قمنا بطباعة العدد قبل التحقق من الشرط , والتغيير طفيف ويستخدم عند الحاجه , لا تقلق في التطبيقات المتقدمه سوف نشاهد بعض من هذه الحيل البرمجيه, ملاحظه : لا تقم ابدا بنسيان الفاصله المنقوطه بعد كتابة الشرط , والا سوف يكون هناك خطأ برمجي في الكود
عبارات داخل عبارات :
كما قلنا في دروس سابقه , يمكننا ادراج عبارات داخل عبارات , اي انه يمكنك كتابة العباره FOR وداخلها العباره FOR , او العباره WHILE وداخلها العباره FOR وداخلها IF كل ذلك سهل جدا , ويحتاج الى قليل من التركيز , سوف نقوم الان بعمل مثال تطبيقي يحتوي على عبارة تكرار وداخلها عبارة تكرار , لنقم بعمل جدول الضرب ونحاول مع بعضنا البعض كتابة الكود , لنقم بتسهيل الامر , قم بفتح برنامج Microsoft FrontPage في جهازك وقم بكتابة جدول الضرب العدد 2 من ( 1 – 5 ) , انظر الشكل التالي:
وعند مشاهدة محتوى كود ال HTML سوف ترى التالي :
الان قم بالتركيز معي لكي توضح الصوره , لو نظرت الى الكود بالاعلى تجد انه HTML فقط وتجد انه مكرر كثيرا , وانت تحتاج الى استخدام عبارات التكرار لتقم بتسهيل الموضوع على نفسك , اذن يجب ان تكتشف اماكن التكرار , دقق في الكود وحاول ان تعرف اماكن التكرار ……….. هل عرفت الاماكن ؟ انظر الى الكود التالي وسوف احدد لك اماكن التكرار
انظر الى الخطوط السوداء , ترى ان الوسم <tr> و الوسم </tr> يتكرران في كل مره ننشئ بها صف ( ROW ) جديد , اذن الان نحتاج الى دالة تكرار ونحتاج ان تقوم بالتكرار 5 مرات لاننا نريد جدول الضرب للعد 2 من ( 1 الى 5 ) ( قم بعد الخطوط السوداء وسوف تجد انها 5 خطوط ) , لكي نقوم بتكرار الاصفف , افتح محرر الاكواد واكتب التالي :
الان لقد عرفنا كيفية تكرار الاصفف , اذن لنظر الى صورة كود HTML مره ثانيه , وقم بالبحث عن تكرار جديد , اذا لم يوجد , فقد انتهينا , وان وجد فنحتاج الى ان نقوم بكتابة دالة التكرار مره اخرى , …………….. هل عرفت مكان التكرار الاخر ؟ انظر الى الصوره لترى اين هو
لاحظ هنا ان الوسم <td> و </td> يتكرر في كل مره نكتب بها عدد جديد , والوسم <TD> هو لكتابة الخلايا في الجدول , تكرر الوسم عندنا , وفي كل مره نقوم بكتابة الخليه مرتان , اذن نحتاج ان نقوم بالتكرار مرتان ( لاننا نريد جدول الضرب للعدد 2 ) , ارجع الى محرر الاكواد واكتب التالي ( بين وسم <tr> و </tr> ) ,
ما قمنا به هنا , اننا قمنا بتكرار الوسوم <td> على حسب العدد الذي نريد انشاء عملية الضرب له , لاحظ ان المتغير x شرطه ان يكون اقل من او يساوي العدد 2 لكي يستمر في التكرار , ولاحظ هنا اننا نقوم بعملية ضرب المتغير x والمتغير y في مكان كتابة محتوى الصف , لكي نقوم بكل شي تلقائيا , قم بتشغيل الكود وسوف يكون الناتج التالي :
ارأيت الان قمنا بكتابة جدول الضرب للعدد 2 بمجرد عبارتين تكرار صغيره ممتع جدا اليس كذلك ؟ لكن لم ننتهي بعد , لو نظرت الى كود ال HTML ترى اننا نريد كتابة العباره التاليه في الجدول ( مضروب في ) , لكي نقوم بإخراج الجدول بشكل افضل , انظر الى الصوره وستعرف ما اعنيه
كيف نقوم بذلك في دالتين التكرار , قم بوضع يدك على رأسك واستغرق في التفكير لمدة دقيقتان وانت تنظر الى الكود , واسأل نفسك , كيف سأقوم بعملها , وسوف يأتيك الجواب كالتالي , نقوم بكتابة العباره ( مضروب في ) في اول وسم <td> وفي اول وسم <tr> , يعني عندما يكون المتغير x يساوي 1 وعندما يكون المتغير y يساوي 1 , قمنا بحل المشكله وما نحتاجه هو عبارة IF الشرطية ويكون شرطها انه عندما يكون المتغير x يساوي 1 و المتغير y يساوي واحد , لا تقم بضرب المتغيرين بل قم بكتابة العباره ( مضروب في ) غير ذلك قم بضرب المتغيرين مع بعضهمها البعض , اذن ارجع الى محرر الاكواد وقم بتعديل الكود الى التالي:
وفي النهايه سوف يكون ناتج عملك الرائع هو الجدول التالي ,
اتمنى ان يكوني شرحي جعلك تفهم هذه النقاط جيدا , ولا تنسى انه يجب ان تقوم بمحاولة عمل اشياء انت تريدها , ولا تحصر التمارين على ما تراه هنا , لكي تقوم بالتوسع في البرمجه
اسئـــلة على الدرس :
- قم بتعديل جدول الضرب في الاعلى , واجعله للعدد 2 و 3 و 4 و 5 و 6 و 7 و 8 و 9 و 10 , واجلعه يقوم بالضرب من العدد ( 1 – 10 ) مثل جدول المدارس مساعده : الحل يكمن في الشروط
الـــدرس الــقادم :
سوف نقوم في الدرس القادم بمعرفة معلومات عن بعض الدوال المفيده , ومعلومات عن الوسوم , وكتابة PHP مع HTML لكي تستعد الى الدخول الى عالم النماذج .
الدرس السابع: متفرقات عن لغة PHP
متطلبات قبل البدء :- لا يوجد
- عبارة IF بطريقة اخرى
- بداية وسوم العبارات ونهايتها
- العباره EXIT
- العباره CONTINUE
- لغة PHP مع HTML بطريقة اوسع
عبارة IF بطريقة اخرى : يمكنك كتابة العباره IF بطريقه اخرى , او نستطيع ان نقول طريقه اسرع , ويمكننا استعمالها عن طريق العباره التاليه ( ؟ ) , لم توضح الصوره كامله ؟ لنقم برؤية كيفية كتابتها , شاهد التالي :
الان تمعن في المثال التالي وسوف يمكنك ان ترى ان طريقتها سهله , افتح محرر الاكواد واكتب مايلي :
لاحظ هنا اننا نعرف متغير اسمه x ثم نقوم بمقارنة هذا المتغير , ونرى انه اذا يساوي 1
فكتب العباره ( one ) واذا لم ياسوي واحد فاكتب العباره ( Two ) , وكل هذا السطر البرمجي نضعه في المتغير $result , وذلك لان ناتج هذه العباره سوف نجعله في المتغير $result , ارأيت سهولة الكود ؟ جرب وحاول ان تغير كود من دروسنا السابقه بهذه الطريقة , ولاحظ الناتج , وسوف ترى انه نفس الناتج
بداية وسوم العبارات ونهايتها :
تعلمنا فيما سبق , انه اذا اردنا ان نقوم بكتابة الدوال فيجب علينا ان نستخدم الوسم ( }و { ) اليس ذلك صحيحا ؟ ولكن هناك طريقة اخرى لا نكتب بها الوسوم هذه وهي عندما يكون متضمن الجمله الشرطيه سطر واحد فقط , شاهد المثال التالي :
ولا يوجد هناك اختلاق اذا قمت بكتابة الوسوم ام لا اذا كان سطر واحد فقط , ولكن اذا كان محتوى العباره اكثر من سطر واحد , حينها يتوجب عليك ان تقوم بكتابة وسوم البدايه والنهايه
العباره EXIT :
تستخدم العباره exit للخروج من محتوى وسوم ( { و } ) , واعتقد انه لا تحتاج الى شرح مطول, فما تفعله هذه العباره هو ان تقوم بأخراجك من كود ال PHP كاملا , انظر الى الكود التالي
لاحظ انه هنا لم يقم بطباعة العبارة ( ARCCN ) مع ان العباره خارج الشروط , ويجب ان تنفذ , ولكن مع استخدام العباره EXIT قمنا بالخروج من كود PHP كاملا ( لم نخرج من العباره فقط )
العباره CONTINUE :
العباره continue سهله ايضا , وماتقوم به هو ان تقوم بإخراج من التكرار لمرة واحده في عبارة التكرار , كلام مبهم وغير واضح اليس كذلك ؟ ما اعنيه هنا , تخيل اننا نقوم بالتكرار 5 مرات , ونريد في المره الثالثه ان نخرج من التكرار ( لا نخرج من التكرار كاملا ) , فقط من التكرار رقم 3 , عند ذلك يمكننا استخدام العباره CONTINUE , لنأخذ مثالا على ذلك لتوضيع الصوره , معروف لدينا ان لا يمكن القسمه ابدا على العدد ( 0 ) اليس ذلك صحيحا ؟ تخيل انا اردنا ان نقوم بقسمة العدد 4 على ( 4 الى -4 ) ونريد ان نفعل ذلك بإستعمال اداة التكرار , ولكن نريد ان نخرج من التكرار عندما يكون معامل القسمه ( 0 ) فما نفعله هو التالي , افتح محرر الاكواد وقم بكتابة ما يلي :
لغة PHP مع HTML بطريقة اوسع :
رأينا في كثير من الامثله , اننا نقوم بكتابة كود ال HTML خارج كود لغة PHP , كمثالنا في جدول الضرب , وايضا يمكننا ان نقوم بكتابة لغة HTML مع لغة PHP واقصد بذلك استخدام العباره echo او print لنقوم بإخراج كود HTML , قم بمشاهدة المثال التالي , ( جدول الضرب معدل ) :
فقط يجب عليك ان تقوم بكتابة العباره echo او print في سطر ال HTML وان تضع علامتي التنصيص ” ” بين بداية ونهاية الكود . تذكر دائما ان عندما يكون هناك العلامه ( = ) في كود HTML يجب ان تقوم بوضع علامة \ قبل كل ” , لاحظ الكود في الاعلى , ما اقوم به هو ان اضع العلامه \ قبل ” انظر الى الكود التالي:
الـــدرس الــقادم : سوف نقوم في الدرس القادم بمعرفة بمعرفة النماذج , وسوف يكون معظم كلامنا عن لغة HTML وسوف نحاول ان نشمل جيمع ما يتعلق بالنماذج وارسالها وكيفية تطبيقها واستخدامها مع لغة PHP