المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : درس[2] اساسيات تعلم لغة البرمجة الـ Php


محمود عفيفى
19-03-2010, 04:16 PM
السلام عليكم ورحمة الله وبركاته

كيف اكتب سكريبت او كود Php؟
اكواد الـ php يجب ان يتم وضعها داخل ملف له الإمتداد .php
وتبدأ الصفحة (او الجزء الذى سيوضع به كود الـ php)
بالوسم
<?phpويغلق بالوسم
?> هناك ايضا طريقة الوسم القصير والتى تمكنك من وضع كود الـ php بالشكل التالى
<?
?>لكن هذه الطريقة ليست جيدة لانها لا تعمل فى حالة ان الـ short_tags معطلة بخصائص الـ php لديك.
وهذا هو الحال فى اغلب إعدادات الـ php

هل استطيع ان اضع كود php داخل صفحة html؟
نعم بالطبع يمكنك ذلك. والتالى هو مثال على صفحة html به كود php لكن يجب ان يكون امتداد ملف الصفحة هو .php وليس اى شئ اخر.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xml:lang="Ar" lang="Ar" dir="rtl" xmlns="http://www.w3.org/1999/xhtml" xml:lang="Ar" lang="Ar" dir="rtl" xmlns="http://www.w3.org/1999/xhtml" xml:lang="Ar" lang="Ar" dir="rtl" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>موضوع جديد فى دورة الـ PHP</title>
</head>
<body>
<p>نص نص نص نص</p>
<?php
//php code here
?>
</body>
</html>
لاحظ بالكود اعلاه بمنطقة الـ body الوسم الخاص بالـ php.
هكذا يتم كتابة كود الـ php داخل كود html

متغيرات الـ php او مايسمى بالـ php variables ماهى؟ وما درجة اهميتها؟
انظر الى ماذا نطلق على هذا الشئ؟ متغيرات
هذه الكلمة تصف المعنى تماما. فهى متغيرات
مثال توضيحى:-
الملف التالى اذا قمت بتشغيله سيعرض بمتصفحك "السلام عليكم ورحمة الله" (بدون علامات التنصيص)
<?php
echo "السلام عليكم ورحمة الله وبركاته";
?>شرح الكود اعلاه ببساطة. الدالة echo عملها هو طبع مايليها الى المتصفح.
واذا كان مايليها هو نص يجب ان يوضع بين علامتين التنصيص "" وبعدها نغلق السطر البرمجى بالعلامة ;
فى المثال اعلاه انت تطبع نص عادى. لكن ماذا اذا اردنا ان يتغير هذا النص فيما بعد فى الإسكريبت؟ امسكت بى, هذه هى المتغيرات التى نتحدث عنها.
يكتب المتغير بالشكل التالى
$var = "السلام عليكم ورحمة الله";حيث كلمة var (ويمكن تغيرها كما تشاء) هى اسم المتغير. والجملة النصية "بسم الله الرحمن الرحيم" هى قيمة هذا المتغير.

اذا لنجيب الأن على السؤال الذى طرحناه اعلاه.
نقوم بكتابة الكود بالشكل التالى
<?php
$var = "السلام عليكم ورحمة الله وبركاته";
echo $var;
$var = "<br />الحمد لله على نعمة العلم";
echo $var;
?>الأن استعرض هذا الملف. سوف ينتج عنه التالى

السلام عليكم ورحمة الله وبركاته
الحمد لله على نعمة العلم

لاحظ اننا بكل مرة نستخدم الأمر echo نطلب منه طبع نفس المتغير var
لكنه بكل مرة طبعه بأخر قيمة له, وهنا يتضح معنى كلمة متغير او variable

المتغيرات لا غنى عنها بالبرمجة. وهى ابسط شئ فى البرمجة كما تلاحظ.

هل يوجد قيود معينة على اسم المتغيرات؟
نعم, اسم المتغير لا يجب ان يحتوى على مسافات, يجب ان لا يحتوى على -
يجب على الا يحتوى على اى شئ سوى حروف و _ وارقام, لكن لا يمكن ان يبدأ اسم المتغير برقم. يعنى اسم المتغير $v23awe اسم صحيح ويمكن استخدامه
لكن اسم المتغير $1anything خاطئ, وايضا اسم المتغير $a-z خاطئ.
وبالطبع كما تلاحظ فالمتغيير يتم وضع علامة الدولار $ قبل اسم المتغير نفسه.

اتمنى تكون وصلة النقطة بشكل مبسط.

هل اسم المتغير حساس لحالة الحروف الكبيرة والصغيرة؟
نعم فالمتغير $var ليس نفسه $Var
يجب عند استدعاء المتغير (اقصد بإستدعاء طلب تنفيذ امر ما عليه, مثلما فعلنا عندما طلبنا تنفيذ الأمر echo على المتغير var)
ان تستدعيه بنفس الأسم وبنفس حالة الحروف, اذا كان اسم المتغير هو var
فـ يجب إستدعائه بكلمة var وليس Var او vAr

ماهى القيم التى يمكن حفظها بمتغير؟
اى قيمة من اى نوع يمكن حفظها داخل متغير.
يعنى يمكن ان يكون المتغير num له القيمة 3*6
<?php
$num = 3*6;
?>فى حين ان المتغير name له القيمة احمد
<?php
$name = "احمد";
?>كما لاحظت. المتغيرات التى قيمتها عبارة عن نص يجب الإحاطة بقيمتها بعلامتين التنصيص الزوجى او الفردى. فى حين ان القيم الرقمية لا تحتاج (او لا يشترط, لكن يمكن الإحاطة بها بأى من علامات التنصيص سواء الفردية ' او الزوجية ") لعلامة التنصيص.

ماذا اذا كانت قيمة المتغير بها احد علامات التنصيص هل يمكننى وضعها بدون مشاكل؟
بالطبع لا, لأن الـ php ليس بشر ليستطيع تحديد سبب وضع علامة التنصيص,
ولا يستطيع ان يفرق هل وضعك لعلامة التنصيص هو لإنهاء الإحاطة بالنص او لطباعة علامة التنصيص؟
لكن الحل موجود بالطبع.
لنفرض ان قيمة المتغير var ستكون انا اتعلم "Php" ماذا عنك؟

فى هذه الحالة, نحن نريد طباعة علامة تنصيص مزدوجة.
لدينا حل من اثنين الأول ان نحيط بهذا النص بعلامة التنصيص الفردية ''
كالتالى
<?php
$var ='انا اتعلم "Php" ماذا عنك؟';
?>[/code]او عن طريق إلغاء علامة التنصيص المزدوج بوضع \ قبل علامة التنصيص
بالشكل التالى
[code]<?php
$var = "انا اتعلم \"php\" ماذا عنك؟";
?>ما الفرق بين علامة التنصيص الزوجية والفردية؟ وعلى اى اساس اقرر ما الذى يمكننى استخدامه منهم؟
هذا سؤال جيد ويجب ان تعرف اجابته.
وهو انه فى بعض الأحيان تكون قيمة احد المتغير تشمل متغير اخر. بمعنى.
انظر للكود التالى مثلا.
<?php
$result = 2 + 7;
$var = "ناتج جمع 2 مع 5 هو $result";
?>استعرض هذا الكود. سوف يكون الخارج منه كالتالى

ناتج جمع 2 مع 5 هو 7

ماذا حدث لكلمة $result الموجودة داخل قيمة المتغير var؟
تم إستبدالها بقيمتها. يعنى بدلا من عرض كلمة $result تم عرض قيمة المتغير $result

النتيجة اعلاه كانت بسبب اننا وضعنا قيمة المتغيير var بين علامتين التنصيص المزدوجة. ماذا اذا وضعناها داخل علامة التنصيص الفردية؟
النصوص التى تحاط بعلامة التنصيص الفردية يتم التعامل معها بحروفها وليس بقيمتها.
بمعنى انه اذا وضعنا قيمة المتغير var (الموجود بالمثال السابق)
داخل علامتى التنصيص الفردى ''
سيكون الناتج كالتالى

ناتج جمع 2 مع 5 هو $result

لاحظ ان المتغيير $result تم طباعته كما هو.

سؤال اخير احب إجابته قبل ان اختم هذا الدرس.
وهو.
ماذا اذا كانت قيمة المتغير بها علامات تنصيص زوجية كثيرة, وبنفس الوقت بها متغيرات, هل سوف اقوم بإضافة \ قبل كل علامة مزدوجة لتخرج النتيجة المطلوبة؟

هناك شئ يدعى Heredoc string quoting
وهى تعامل قيمة المتغير كما يتم معاملتها بعلامة التنصيص الزوجية.
مع عدم اشتراط وضع \ قبل علامات التنصيص.
كامثال لحاجتك لإستخدام هذه الطريقة.
هى مثل عند جعل قيمة المتغير $html هى التالى
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xml:lang="Ar" lang="Ar" dir="rtl" xmlns="http://www.w3.org/1999/xhtml" xml:lang="Ar" lang="Ar" dir="rtl" xmlns="http://www.w3.org/1999/xhtml" xml:lang="Ar" lang="Ar" dir="rtl" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>موضوع جديد فى دورة الـ PHP</title>
</head>
<body>
<p>نص نص نص نص</p>
$result $another_variable
</body>
</html>لاحظ ان الكود به علامات تنصيص مزدوجة كثيرة, يعنى الطريقة الأفضل هو احاطته بعلامتى تنصيص فردية, لكن به ايضا متغيرات ونريد طباعة قيمتها
بالتالى لا يمكننا احاطتها الا بعلامة التنصيص الزوجية لكن هذا سيكلفنا عناء اضافة \ قبل كل علامة " فى قيمة المتغير.
الحل الأفضل هو بإستخدام الـ Heredoc string quoting
ويكون شكل كتابته كالتالى
<?php
$html = <<< HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xml:lang="Ar" lang="Ar" dir="rtl" xmlns="http://www.w3.org/1999/xhtml" xml:lang="Ar" lang="Ar" dir="rtl" xmlns="http://www.w3.org/1999/xhtml" xml:lang="Ar" lang="Ar" dir="rtl" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>موضوع جديد فى دورة الـ PHP</title>
</head>
<body>
<p>نص نص نص نص</p>
$result $another_variable
</body>
</html>
HTML;
?>كما تلاحظ. يجب وضع <<< مباشرة بعد علامة = (او بعد echo اذا كنت ستستخدم الأمر echo مباشرة على النص دون حفظ النص داخل متغير)
من بعدها تضع كلمة من اختيارك, فى هذا المثال اخترت الكلمة HTML
(لا يشترط ان تكون الحروف كبيرة)
بعدها يجب ان تنزل سطر للأسفل, ثم وضع قيمة المتغير.
ثم بالنهاية (بعد انتهاء الجزء الخاص بقيمة المتغير) ببداية سطر جديد تضع نفس الكلمة التى وضعناها بالبداية (ويجب ان تكون ببداية السطر ولا يسبقها اى مسافة فارغة ويجب ان تكون لها نفس حالة الأحرف).
ثم تنهى السطر البرمجى بعلامة ;

شئ اخير لأضيفه حتى لا الجأ لإعادة شرح طريقة الـ Heredoc مرة اخرى.
وهى فى حالة ان قيمة المتغير بها مصفوفة (سنشرح المصفوفات لاحقا)
شكل كتابة احد عناصر المصفوفة يكون بهذا الشكل (هذا احد الأشكال)
$array['key'] عند وضع عنصر لمصفوفة داخل طريقة الـ Heredoc
يجب الإحاطة بها بعلامتين {}
يعنى توضع بالشكل
{$array['key']} وشئ اخر سريع وبسيط قبل نهاية الدرس
وهو التعليقات فى الـ php
التعليقات هى اشياء تقوم بكتابتها داخل الإسكريبت ولا يتم التعامل معها على انها جزء من الكود. هى فقط تعليقات وهى مفيدة جدا لتذكيرك فيما بعد بوظيفة برنامجك (انت من يقوم بكتابتها لتذكر نفسك فيما بعد عندما تعود للكود مرة اخرى)
وهى لها ثلاثة اشكال:-
1- اضافة علامة # قبل التعليق
كامثال
<?php
#it's just comment
?>2- اضافة // قبل سطر التعليق
<?php
//this is just another comment
?>3- فى حالة رغبتك بوضع تعليق بعدة اسطر يصف جزء كبير من الكود, بدلا
من وضع علامة # او // ببداية كل سطر يمكنك استخدام التالى
<?php
/**
this a multi
line
comment
*/
?>كما تلاحظ تبدأ التعليق بعلامة /** وتنهيه بعلامة */
انتهى درس اليوم واراكم فى درس لاحق بإذن الله.

منقول

أبو يوسف
19-03-2010, 06:50 PM
بارك الله فيك أخي محمود على هذا الجهد المتواصل

.

رائد ابو فيصل
19-03-2010, 09:28 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

موفق بإذن الله ... لك مني أجمل تحية .

محمود عفيفى
19-03-2010, 09:45 PM
حياكما الله وبارك فيكما لكما منى اجمل تحيه :abc_152:

كينج نت
23-03-2010, 12:01 AM
السلام عليكم ورحمة الله وبركاته

مشكورحبيب قلبي (( حمودة ))

دروس جميلة ودورات هامة

مأكد نتابع ونستفيد بإذن الله ولازلنا على التواصل والمتابعه

جزاك الله عنا كل خير وبارك بجهودك الطيبة

:abc_102:

.

abohmam
23-03-2010, 07:53 PM
جزاك الله خيرا اخى محمود

درس رائع ويعتبر أول مفتاح من مفاتيح هذه البرمجة

لك التحية والشكر