شرح برامج » برمجة PHP » مدخلك الصحيح لعالم php !!!

 مدخلك الصحيح لعالم php !!!  أضيف في: 6-6-1426هـ


بسم الله والصلاة والسلام على رسول الله ... أما بعد ...

فيا إخواني الأحبة في الله .. السلام عليكم ورحمة الله وبركاته

أحب أن أمسك بأيادي إخواني المغرمين بلغة PHP والذين لا يعرفون الطريقة المثلى للبدء في تعلمها .. فكما هو ملاحظ تخبط الكثيرين في دروس المواقع المختلفة ( التي لا خلاف على أهميتها ) ولكن ما نريده هو : كيف أبدأ تعلم لغة PHP ؟ ما هي الخطوة الصحيحة الأولى التي تمهد لك الطريق لاحتراف هذه اللغة ؟ والتي تيسر عليك فهم الدروس المنتشرة في الانترنت التي لا غنى عنها لأي شخص يود تعلم PHP ..

اسمحوا لي أن أقدم لكم هذا الدرس البسيط والذي برأيي الشخصي هو الطريقة الأمثل لبدء تعلم PHP .. ( أعيد وأكرر هو رأي شخصي لا أقل ولا أكثر ) فمن يعترض عليه فهو شأنه وانا أحترم آراءكم جميعها .. والخلاف لا يفسد للود قضية ..

إذن وقبل أن أبدأ ..أريد أن أهمس في أذن كل واحد منكم هذه الجمل :

لن أقول لكم إلام ترمز حروف PHP ..
ولن أقول لكم من هو مؤسسها ..
ولن أقول لكم مراحل تطورها ..
ولن أقارن بينها وبين أي لغة برمجة أخرى ..

فأنتم تعلمون قبلي جميع هذه التفاصيل .. وأنا متأكد أن أغلبكم قد سئم منها لكثرة ما تعاد وتكرر في دروس الـPHP .. (( وبيني وبينكم : ماالذي ستستفيده من معرفة هذه المعلومات ؟؟ )) صدقوني لا شيء .. المهم .. أن هذه المعلومات أصبحت معروفة لدى الجميع فلا داعي لتكرارها وتضييع وقتكم سدى بلا فائدة ..

ثم عليك قبل الشروع في تعلم لغة PHP أن تكون متأكدا من رغبتك في تعلمها ... فمن ليست لديه الرغبة فلن ينجح ولن يكمل .. ومن عنده الرغبة ولو كان أقل نشاطا من سابقه فسوف يجد سهولة في تعلم اللغة ...

أما من ناحية الأمان .. فلا توجد لغة كاملة في عالم الانترنت .. كل اللغات فيها ثغرات ومخاطر .. ومهمتك هنا هو كيف تتفادى هذه المخاطر .. وليس كيف تجد لغة ليس فيها مخاطر ، فهذا مستحيل ..

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

HTML هي ليست لغة برمجة كما يعتقد البعض .. إنما هي مجرد لغة تفاهم بين الصفحة والمستعرض ( انترنت اكسبلورر أو نيتسكيب أو غيره .. ) .. ما معنى ذلك ؟ معناه أن سطور HTML الموجودة في الصفحات هي مجرد أوامر موجهة للمستعرض ليقوم بأمور معينة مثل : عرض نص أو عرض صورة أو عرض روابط تشعبية ... إذن وكما يقول كبار المبرمجين إن لغة HTML هي لغة جامدة لا تتجاوب مع أي تأثيرات خارجية .. كل ما تقوم به هو ما أدخله مصمم الصفحة عليها فقط لا غير ..

جيد جدا .. ولكن وبسبب التقدم الحاصل في عالم الانترنت كان لا بد من عمل أمور تجعل HTML أكثر فاعلية وحركية مع التأثيرات الخارجية ( التأثيرات الخارجية : هي ما يقوم به زوار الصفحة من أمور وإدخالات ) فتخيل لو قمنا بعمل صفحة ترسل لنا طلبية شراء .. كيف نجعل HTML يرسل الطلب الذي سيطلبه زائر الصفحة ؟ .. لن يستطيع ، لماذا ؟ لأن HTML مهمته عرض نموذج الطلب فقط لا غير وأي شيء يدخل فيه تفاعل واستجابة لمؤثرات خارجية لن يفهمه HTML .. لذا أتت PHP لتنقذ الموقف وتضفي جوا من التفاعل مع الزائر كما لو كان هناك شخص موجود خلف الصفحة ويتجاوب مع كل ما يدخله الزائر من إدخالات وأمور .. ففي نموذج الشراء .. سيقوم HTML بعرض النموذج أما PHP فسيقوم بالتفاعل مع الزائر وأخذ طلبيته وإرسالها إلى صاحب الموقع ليطلع عليها ...

أرجو أن تكونوا قد فهمتم ما أردت الوصول إليه


سنقوم بتطبيق مثال عملي ألا وهو ( نموذج طلبية طعام في مطعم إلكتروني ) ...

في الحقيقة هنا تبدأ نظريتي في تعليم لغة PHP ... ( ونظريتي لا تعني أنني أنا من اخترعها بل هي النظرية التي أؤمن أنها هي الصحيحة والتي تعلمتها عن كبار مبرمجي الـPHP ) ... فتطبيق مثال أو مشروع هو أفضل وسيلة لتعلم أوامر اللغة ... أما طريقة سرد الأوامر عليك كأنك في حصة تاريخ أو جغرافيا والطلب منك أن تحفظها فهي فاشلة بكل المقاييس ولن تصل بك إلى إي نتيجة إلا ما ندر ... فعند تطبيقك الآن للمثال العملي ، ستتدرج في الأوامر شيئا فشيئا وكل خطوة ستحتاج فيها لأوامر إضافية .. وسيزيد هذا من قابليتك لحفظها لأنك تأخذها وتطبقها ثم تحفظها .. فليس من حفظ كيفية عمل ( الكبسة :) ) كمن قام بعملها ( وأكلها :) ) ... أليس كذلك ؟!؟

إذن .. الخطوة الأولى هي عمل النموذج .. وكما عرفنا أن هذه هي مهمة HTML حيث سنقوم بعمل نموذج طلبية يظهر لزوار المطعم الالكتروني لكي يطلبوا منه الغداء ..

قم بنقل الكود التالي ووضعه في صفحة واحفظها باسم food.htm ..

CODE:
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
<html>

<head>
<meta http-equiv=\"Content-Language\" content=\"ar-jo\">

<title>مطعم أبو خميس الالكتروني</title>
</head>

<body>

<p align=\"center\"><b><font size=\"6\" color=\"#000080\" face=\"Simplified Arabic\">
مطعم أبو خميس الالكتروني</font></b></p>
<p align=\"center\"><font face=\"Simplified Arabic\"><b>الوجبات الرئيسية</b></font></p>

<form action=\"\" method=\"\">

<div align=\"center\">
<center>
<table border=\"1\" cellpadding=\"3\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"50%\" id=\"AutoNumber1\">
<tr>
<td width=\"50%\" bgcolor=\"#99CCFF\" align=\"center\">
<p align=\"center\"><font face=\"Simplified Arabic\"><b>الكمية</b></font></td>
<td width=\"50%\" bgcolor=\"#99CCFF\">
<p align=\"center\"><font face=\"Simplified Arabic\"><b>الطلبية</b></font></td>
</tr>
<tr>
<td width=\"50%\" align=\"center\"><input type=\"text\" name\"\" size=10></td>
<td width=\"50%\" align=\"center\">
<p align=\"center\"><b><font face=\"Simplified Arabic\">كبسة</font></b></td>
</tr>
<tr>
<td width=\"50%\" align=\"center\"><input type=\"text\" name\"\" size=10></td>
<td width=\"50%\" align=\"center\"><b><font face=\"Simplified Arabic\">سلطة</font></b></td>
</tr>
<tr>
<td width=\"50%\" align=\"center\"><input type=\"text\" name\"\" size=10></td>
<td width=\"50%\" align=\"center\"><b><font face=\"Simplified Arabic\">عصير</font></b></td>
</tr>
</table>
<p align=\"center\"><input type=submit value=\"أرسل الطلبية\"></p>
</form>
</center>
</div>

</body>

</html>


سيكون شكل النموذج كما يلي في المتصفح :

---------------------------------------------------------------------
http://www.fallosh.com/php/image3.jpg
---------------------------------------------------------------------

ملاحظة هامة : لست هنا في صدد تعليم وسوم HTML فيمكنك عمل ما تشاؤه بواسطة برنامج FrontPage وهو يقوم بإنتاج وسوم HTML تلقائيا ..

بالنسبة لكود الـHTML فلقد تعمدت وضعه ناقصا ، ومواضع النقص في الكود هي حلقات الوصل بين كود HTML و كود PHP .. فنموذج الطلب المكتوب بلغة HTML يجب ربطه بكود الـPHP الذي سنكتبه ، وذلك عن طريق الوسوم التالية :

* action : وفيه نكتب عنوان ملف الـPHP ( بمعنى آخر نكون قد ربطنا بين HTML و PHP ) اكتب في هذه الخانة ( order.php ) على فرض أن ملف الPHP الذي سنكتبه اسمه ( order.php ) وأنه موجود في نفس المجلد الموجود فيه نموذج الطلب ، ولكن ماذا لو كان النموذج موجود في مجلد آخر غير مجلد الكود ، عندها يتوجب عليك كتابة المسار كاملا في خانة action .

* method : طريقة إرسال البيانات من النموذج (HTML) إلى ملف الPHP وهي إحدى طريقتين : إما post وإما get .
- الفرق بين post و get أن post ترسل البيانات كرزمة منفصلة لملف php أما get فتضيف البيانات لنهاية عنوان ملف php .
في مثالنا هذا سنختار post لأننا سنرسل البيانات كرزمة لملف order.php .
---------------------------------------------------------------------
http://www.fallosh.com/php/image1.jpg
---------------------------------------------------------------------
* name : ( أسماء الحقول ) ، فكل حقل يحتوي على بيانات معينة يقوم بإدخالها الزبون ، لذا علينا أن نعطي لكل حقل اسم حتى يتعرف عليه ملف PHP وإلا لن يتمكن ملف PHP من تمييز محتويات كل حقل ، والمهم هنا هو أن تعطي كل حقل اسم مميز يمكنك تذكره لأنك ستسخدمه مرة أخرى عند كتابة كود PHP فعلى سبيل المثال : الحقل ( كبسة ) أعطه الاسم ( kabsah ) والحقل سلطة أعطه الاسم ( salad ) والحقل عصير أعطه الاسم ( juice ) وهكذا ...
---------------------------------------------------------------------
http://www.fallosh.com/php/image2.jpg
---------------------------------------------------------------------
المهم .. يبقى علينا الآن برمجة ملف بلغة PHP يقوم بمعرفة ما قد طلبه الزبون ، ثم يقوم بجمع الكميات واحتساب سعرها ثم إضافة ضريبة المبيعات على الطلبية وأمور أخرى كثيرة سنتطرق إليها لا حقا .


اتفقنا سابقا أن نسمي ملف الكود الذي سنبرمجه order.php ...

يفضل أن تستخدم برنامج PHP Coder لكتابة أكواد php وذلك لأن له القدرة على تمييز كودات PHP ، وهذا يفيد المبتدئين كثيرا ..

قم بكتابة الكود التالي في الصفحة :
CODE:
0001
0002
0003
0004
0005
0006
0007
0008
0009
<html>
<head>
<title>مطعم أبو خميس الالكتروني</title>
</head>
<body>
<h1>مطعم أبو خميس الالكتروني</h1>
<h2>بيانات الطلبية :</h2>
</body>
</html>


احفظ الملف باسم : order.php ..
لعلك تلاحظ أننا لم نكتب أي كود PHP .. إنها مجرد وسوم HTML ..
وهنا يجب أن أنوه انه لا غنى عن أكواد HTML في PHP ولقد شرحنا لكم سابقا الفرق بينهما ...

المهم سندخل الآن كود php بسيط لتفهموا كيفية إدخال الكودات ..

أضف الأسطر التالية تحت الوسم </h2> ..
---------------------------------------------------------------------
http://www.fallosh.com/php/image4.jpg
---------------------------------------------------------------------
كما هو واضح أن أي كود php تريد إدخاله يجب أن يبدأ بـ(؟>) وينتهي بـ(<؟) وهذا النمط يسمى : SGML (اختصار لـ Standard Generalized Markup Language ) ..

يوجد هناك أنماط أخرى لإدخال كودات php وهي :

نمط : XML ... يبدأ بـ(<?php) وينتهي بـ(<؟) .
نمط : ASP ... يبدأ بـ(%>) وينتهي بـ(<%) .
نمط SCRIPT ... يبدأ بـ(<SCRIPT LANGUAGE='php'>) وينتهي بـ(</SCRIPT>) .

يمكنك استعمال أي من هذه الأنماط في إدخال كودات php ولكن برأيي الشخصي المتواضع أجد النمط الأول الأفضل والأكثر استخداما وهو الذي يستخدمه مطوري لغة PHP .

على كل حال .. أول جملة php تعلمناها الآن هي :

PHP CODE:
0001
0002
<?php echo "<p>تم استلام طلبيتك!"
 
?>


وأظن ان مهمتها واضحة وبسيطة ، فهي تطبع على الشاشة ما كتبته داخلها ، أي ما كتبته داخل الأقواس المزدوجة ( " " ) وتلاحظ استخدامنا للفاصلة المنقوطة بعد نهاية الجملة ، وهي ضرورية لإنهاء الجملة وفصلها عن الجمل التي ستليها ، وأطمئنك أن عدم كتابة الفاصلة المنقوطة هو خطأ برمجي شائع من السهل ارتكابه ولكن من السهل إيجاده وإصلاحه أيضا ;) .

الفراغات ...

يستحسن ويفضل استخدام الفراغات أثناء كتابة كودات php ( كالمسافات والأسطر الجديدة ) وذلك لأنها تسهل عليك قراءة الشيفرة مستقبلا وتطويرها وإصلاح أعطالها ...

فمثلا ... هذا الكود :

PHP CODE:
0001
0002
<?php echo "السلام";echo " عليكم"
 
?>


سوف يعطي نفس النتيجة لو كتبناه هكذا :

PHP CODE:
0001
0002
0003
<?php echo "السلام";
echo 
" عليكم"
 
?>


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

التعليقات ...

إن التعليقات هي ضرورية جدا لكل مبرمج ، ولا غنى لك عنها إذا أردت أن تصبح مبرمجا محترفا بمعنى الكلمة ، فهي مجرد ملاحظات تضيفها على شيفرة php وسوف يتجاهل أي نص مكتوب داخل التعليق ، وهناك 3 طرق لإضافة التعليق :
---------------------------------------------------------------------
http://www.fallosh.com/php/image5.jpg
---------------------------------------------------------------------
// و # : تستخدم للملاحظات ذات السطر الواحد .
/* , */ : تستخدم للملاحظات الطويلة ذات الأسطر المتعددة .

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

إضافة محتوى ديناميكي ...

لحد الآن لم نقم بإدخال كود php يستطيع عمل شيء لا يستطيع HTML عمله .. ولكن الآن سوف نقوم بإدخال كود يجعل من صفحة HTML جامدة صفحة ديناميكية متفاعلة مع الزائر ... بحيث يشعر الزائر أن الصفحة تتفاعل معه وتتأثر بمدخلاته ...

قم بكتابة الكود التالي بعد جملة ( echo "<p>تم استلام طلبيتك!"; ) ..
---------------------------------------------------------------------
http://www.fallosh.com/php/image6.jpg
---------------------------------------------------------------------
* لقد تعمدت عدم كتابة الكودات لكم حتى تتعودوا على طريقة الكتابة بأنفسكم ، فأنا أرغب أن تقوم بكتابة الكود بنفسك ولا تعتمد على ( copy & paste ) ...
قم بتجربة النموذج من الصفحة food.htm لتجد النتيجة التالية :
http://www.fallosh.com/php/image7.jpg
لقد أضفنا كودا يخبر الزبون بوقت وتاريخ الطبية التي طلبها .. باستخدام الدالة ()date .. بالطبع الوقت والتاريخ سيتغير حسب توقيت الطلب :D ..

استدعاء الدالات ...

انظر كيف قمنا بكتابة دالة التاريخ .. هذا هو الشكل العام للدالة ، فـ PHP تمتلك مكتبة شاملة من الدالات الجاهزة التي يمكنك استدعاؤها واستخدامها متى ما شئت ذلك .. ولكن معظم هذه الدالات إن لم تكن كلها بحاجة إلى بعض المعلومات منك لكي تعمل بالشكل الصحيح ... ونسمي هذه البيانات التي ترسلها إلى الدالة وسيطة (argument) أو بارامتر (parameter) الدالة .. تلك الوسيطات أو البارامترات هي البيانات المرسلة للدالة لكي تخرج لك بعض النتائج المحددة .

ففي مثالنا الحالي : ()date هي الدالة و الجملة ( H:i, jS F ) هي البارامتر أو الوسيطة .

الوصول إلى المتغيرات ...

المتغيرات هي الفراغات التي يقوم بتعبئتها الزبون أو زائر الصفحة .. ففي مثالنا نحن هناك 3 متغيرات وهي ( الكبسة والسلطة والعصير ) ولابد من ربط هذه المتغيرات بملف الكود php وذلك عن طريق تحديد أسماء معينة لها ( وقد قمنا بذلك مسبقا ) لذا كل ما سنفعله الآن هو جعل ملف الphp يظهر المتغيرات التي سيدخلها الزبون وذلك بإضافة الكود التالي على ملف الكود :

---------------------------------------------------------------------
http://www.fallosh.com/php/image8.jpg
---------------------------------------------------------------------

إذهب الآن إلى صفحة ( food.htm ) وقم بتعبئة النموذج واضغط أرسل الطلبية وانظر ماذا ستكون النتيجة ؟

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

---------------------------------------------------------------------
http://www.fallosh.com/php/image9.jpg
---------------------------------------------------------------------

المتغيرات هي كل شيء في php ، فإذا أحسنت استخدام المتغيرات وفهمتها جيدا ستحسن البرمجة بواسطة php إن شاء الله ..

إن أي مدخلات يمكن للزائر إدخالها على صفحتك تسمى ( متغير ) لماذا ؟ لأنها تتغير حسب ما أدخله زائر الصفحة ، فمثلا : ربما يطلب شخص ( 4 كبسة و 1 سلطة و 5 عصير ) ولكن ربما يأتي شخص آخر ويطلب ( 2 كبسة و 2 سلطة و 4 عصير ) ... إذن من هنا نعلم لماذا سميت "متغيرات" !

ويمكن معرفة المتغيرات في php بسهولة فهي تبدأ دوما بعلامة الدولار ($) بينما لا تكون علامة الدولار ($) موجودة في كود html ..

هناك طريقتان للوصول إلى بيانات النموذج من خلال المتغيرات ..

إما كما فعلنا سابقا في المثال وذلك بكتابة اسم المتغير في php مضافا إلى أوله علامة الدولار وإما باستخدام إحدى هاتين المصفوفتين وذلك حسب طريقة النقل التي استخدمتها :
1- $HTTP_GET_VARS في حال كانت طريقة نقل البيانات = get
2- $HTTP_POST_VARS في حال كانت طريقة نقل البيانات = post
ونستخدمها كما يلي :
من كود php قم بحذف الكلمة : $kabsah وأدخل بدلا منها التالي :
-----------------------------------------------------------------------
http://www.fallosh.com/php/image10.jpg
-----------------------------------------------------------------------
قم بتجربة النموذج سترى أنه قام بنفس العملية .. ولكن ربما تتسائل ما الفرق بينهما ؟ سؤال وجيه جدا .. النمط الثاني يعمل بشكل أسرع ويتجنب إنشاء متغيرات تلقائية غير مطلوبة .. أما النمط الأول فهو أسهل للقراءة والكتابة ( ويجب أن يكون المرشد register_globals مضبوطا على on حتى يعمل ، ولكن لا تخف فهذا المرشد هو مضبوط أصلا على On إلا إذا قام مدير السيرفر بضبطه على off ) ...

ضم السلاسل ..

السلاسل هي أي شيء نريده أن يظهر على الشاشة في المستعرض ، وتنقسم السلاسل إلى قسمين : سلاسل حرفية وهي تكون ثابتة كنص أو أرقام وسلاسل متغيرة وهي المتغيرات ...
-----------------------------------------------------------------------
http://www.fallosh.com/php/image11.jpg
-----------------------------------------------------------------------
وهناك طريقتين لضم السلاسل ...
إما كما هو موضح بالصورة وكما فعلنا في مثالنا السابق .. وذلك بوضع السلسلة المتغيرة خارج علامات الاقتباس المزدوجة (" ") ووضع نقطة ( وهي مهمة لضم السلسلة ) .
وإما بوضع السلسلة المتغيرة داخل علامات الاقتباس المزدوجة وحذف النقطة كما يلي :
-----------------------------------------------------------------------
http://www.fallosh.com/php/image12.jpg
-----------------------------------------------------------------------
يمكنك استخدام أي من الطريقتين حسب ذوقك ..
انتبه لعامل ضم السلاسل النقطة (.) فلو أردنا أن نضم 3 سلاسل سيكون الشكل كما يلي :
-----------------------------------------------------------------------
http://www.fallosh.com/php/image14.jpg
-----------------------------------------------------------------------
وأحب أن أنوه أن هناك نوعين من السلاسل ، سلاسل بعلامات اقتباس مزدوجة (" ") وسلاسل بعلامات اقتباس فردية (' ') الفرق بينهما أن النوع الأول يمكنك كتابة سلاسل متغيرة داخله أما الثاني فلا ، حاول أن تجربها بنفسك وترى النتيجة ..

المعرفات ..

المعرفات هي أسماء المتغيرات والدالات والفئات .. ما يهمنا هنا هو اسماء المتغيرات ..
-----------------------------------------------------------------------
http://www.fallosh.com/php/image13.jpg
-----------------------------------------------------------------------
والمعرفات تنطبق عليها القواعد التالية :
[list]
[*]يمكن أن تكون المعرفات بأي طول وتتألف من أرقام وأرحرف وخط تسطير سفلي ( _ ) وعلامات دولار .
[*]لا يمكن أن تبدأ المعرفات بعدد .
[*]المعرفات حساسة لحالة الأحرف الصغيرة والكبيرة فـ $kabsah ليست كـ $KaBsAh .
[*]المعرفات للمتغيرات يمكن أن تحمل اسم دالة ولكن يفضل عدم عمل ذلك حتى لا يحصل تضارب .
[/list]
تعيين قيم للمتغيرات ..

نستخدم عامل التعيين ( = ) لتعيين قيمة محددة لمتغير ما .
فلنأخذ مثالنا العملي ونضيف عليه الكود التالي :
-----------------------------------------------------------------------
http://www.fallosh.com/php/image15.jpg
-----------------------------------------------------------------------
الآن نكون قد عينا قيمتين لمتغيرين الأول لكمية الطلب والثاني لسعر الطلبية كلها ، ولقد قمنا بتعينها ( 0 ) وذلك لكي لا نضيف على ما قد يطلبه الزبون أي شيء .

أنواع المتغيرات ..
[list]
[*]integer (رقم صحيح) : يستعمل للأرقام الكاملة .
[*]Double (مزدوج) : يستعمل للأرقام بكسور عشرية .
[*]String (سلسلة) : يستعمل لسلاسل الأحرف والكلمات .
[*]Array (مصفوفة) : يستعمل لتخزين عدة بنود بيانات من نفس النوع .
[*]Object (كائن) : يستعمل لتخزين تواجد فئات .
[/list]
قوة الأنواع ..

إن أنواع المتغيرات في php ضعيفة جدا ، أي أنها تتغير بكل سهولة وليست ثابتة كالمتغيرات في لغات البرمجة الأخرى ..
فمثلا في تطبيقنا العملي قمنا بتعيين القيمة ( 0 ) للمتغير $total أي أن نوع هذا المتغير هو integer (رقم صحيح) ولكن ماذا لو كتبنا بعد ذلك سطرا آخر :
PHP CODE:
0001
0002
<?php $total "السلام عليكم"
 
?>

سوف يتحول نوع المتغير من integer إلى string ، فلغة php تقوم بتغيير نوع المتغير حسب القيمة المخزنة فيه في أي وقت كان .

تحويل الأنواع ..

يصعب علي شرح هذا الأمر لكن سأحاول جهدي .... خذ هذا المثال من تطبيقنا العملي :
PHP CODE:
0001
0002
0003
<?php $total 0;
$totalprice = (double)$total
 
?>

السطر الثاني من الكود يأخذ قيمة ونوع المتغير الأول ثم يقوم بتحويل النوع إلى double ( رقم عشري ) ولكن يبقى الأول على ما هو عليه والثاني يصبح مزدوج .
وبهذه الطريقة يمكنك تحويل الأنواع فقط قم بكتابة النوع الذي تريد أن تحول عليه بين قوسين قبل المتغير .

المتغيرات المتغيرة ..

تمكننا المتغيرات المتغيرة من تغيير المعرف بشكل ديناميكي .. كيف ؟
مثلا .. نقوم بعمل متغير ما وتعين له قيمة محددة :
PHP CODE:
0001
0002
<?php $chname "kabsah"
 
?>

يمكننا الآن استعمال $$chname بدلا من $kabsah .. مثلا نود تعيين قيمة $kabsah على ( 3 ) فنقوم بكتابة ما يلي :
PHP CODE:
0001
0002
<?php $$chname 5
 
?>

هذا يعطي نفس النتيجة لو كتبناه هكذا ...
PHP CODE:
0001
0002
<?php $kabsah 5
 
?>

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

الثوابت ..

كما تعلمنا سابقا يمكننا تغير قيمة المتغير بكل سهولة ، ماذا لو أردنا أن نعطي قيم ثابتة لبعض الأمور بحيث لا يمكن تغييرها لاحقا في أي مكان من الكود ...
لقد أتاحت لنا لغة php عمل ذلك بواسطة الثوابت وعن طريق الأمر define .
لنطبق على مثالنا العملي مباشرة ..
نريد أن نعين أسعار ثابتة للوجبات ، فمثلا نريد أن نحدد سعر الكبسة والسلطة والعصير بحيث يمكننا بعدها احتساب السعر الكلي للطلبية .
أضف الكود التالي على ملف الكود order.php ..
-----------------------------------------------------------------------
http://www.fallosh.com/php/image16.jpg
-----------------------------------------------------------------------
تلاحظ أننا كتبنا الثوابت بحروف كبيرة ، مع أنه لا يشترط ذلك ، ولكنه يفضل وبشدة وذلك لتمييزها عن المتغيرات ، وهناك ملاحظة هامة : عندما تريد عرض الثوابت على الشاشة فإنك لا تستخدم امامها علامة الدولار $ بعكس المتغيرات التي يجب أن تستخدم معها علامة الدولار لتعمل .
PHP CODE:
0001
0002
<?php echo KABSAHPRICE
 
?>


العوامل : هي رموز يمكنك استخدامها للتلاعب بالقيم والمتغيرات بتنفيذ عمليات معينة عليها .

لقد أخذنا لحد الآن عاملين حسب ما أذكر .. عامل ضم السلاسل النقطة (.) وعامل التعيين (=) ، لتعيين القيم للمتغيرات .

سندخل الآن بشكل مفصل في العوامل .. ولكن قبل ذلك أود أن تعرف أن العوامل تأخذ إما معامل (operands) واحد أو اثنين أو ثلاث .. والشكل التالي يوضح لك العامل والمعامل .
---------------------------------------------------------------------------
http://www.fallosh.com/php/image17.jpg
---------------------------------------------------------------------------

العوامل الرياضية ..

العوامل الرياضية واضحة جدا ، هي نفسها عمليات الحساب .. الموضحة في الجدول التالي :
---------------------------------------------------------------------------
http://www.fallosh.com/php/image18.jpg
---------------------------------------------------------------------------
يمكن أن نخزن في متغير مجموع متغيرين آخرين بواسطة عامل التعيين وعامل الجمع كما يلي :
PHP CODE:
0001
0002
<?php $result $a $b
 
?>

يمكنك استعمال عامل الطرح (-) بشكل أحادي إذا أردت تعيين أرقام سالبة :
PHP CODE:
0001
0002
<?php $a = -1
 
?>

عامل الباقي يقوم بقسم المتغير الأول على الثاني ويخرج لك الباقي فقط ...
PHP CODE:
0001
0002
0003
0004
<?php $a 13;
$b 10;
$result $a%$b
 
?>
تكون قيمة $result تساوي 3 .. لأن الباقي من قسمة 13 على 10 هو 3 .
ملاحظة : العوامل الرياضية تستخدم على الأرقام فقط ! ، إذا استخدمتها على أي شيء آخر سيبدأ php في ( التخبيص :D ) !

عامل السلاسل ..

عامل السلاسل الوحيد هو عامل ضم السلاسل النقطة (.) ... مع أننا شرحناه لكن وذكر إن الذكرى تنفع المؤمنين ، فهو يعمل كما يلي :
PHP CODE:
0001
0002
0003
0004
0005
<?php $a "السلام";
$b " عليكم";
$result $a.$b;
echo 
$result
 
?>
تكون النتيجة ( السلام عليكم ) .. قم بتجربة جميع الكودات التي أعطيها لك حتى تتوضح الصورة أكثر وتصبح أسهل للفهم والاستيعاب .

عامل التعيين ..

أيضا عامل التعيين قد شرحناه وهو علامة المساواة ( = ) ولكن أود أن أوضح شيئا مهما حتى لا تختلط عليك الأمور ، فعامل التعيين ( = ) ليس معناه ( يساوي ) كما في الحساب ، بل هو معناه أن نجعل متغيرا ما قيمته كذا .. مثلا :
PHP CODE:
0001
0002
0003
<?php $a 2;
$b 3
 
?>
هنا جعلنا قيمة المتغير a مضبوطة عند 2 وقيمة المتغير b مضبوطة عند 3 .
لكن ماذا لو فعلنا هذا ...
PHP CODE:
0001
0002
<?php $a $b
 
?>
هل هذا معناه أن 2 = 3 !؟!؟! لا طبعا .. بل هذا معناه أن قيمة المتغير b أصبحت مضبوطة عند 2 ( وهي قيمة المتغير a ) ..
أتمنى أن تكون قد فهمت قصدي :rolleyes: ...
ملاحظة : يمكنك استخدام عامل التعيين أثناء العمليات الرياضية باستخدام الأقواس () كما يلي :
PHP CODE:
0001
0002
<?php $b + ($a 5); 
 
?>
ستكون النتيجة هنا = 11 .. لأننا قمنا بإضافة 6 على $a ولكن أثناء العملية قمنا بوضع أقواس وعينا $a عند 5 ثم قام بإضافتها على 6 ، حيث أن الأقواس تعطي الأسبقية لما بداخلها .

دمج عوامل الرياضيات بعامل التعيين ..

تستخدم طريقة الدمج في حالة أننا نريد أن نضيف عدد معين على متغير لا نعرف كم ستكون قيمته ! .. على سبيل المثال : نريد أن نضيف 10 علامات على أي درجة يحصل عليها الطالب .. إذن علامة الطالب غير معروفة وسنعبر عنها بالمتغير $mark .. وسنضيف عليها 10 علامات تلقائيا .... كيف نفعل ذلك ؟؟ بالطرق العادية نفعله هكذا :
PHP CODE:
0001
0002
<?php $mark $mark 10
 
?>
لكن php أتت وقامت بعمل عوامل مدمجة تسهل عليك هذا الأمر وتريحك من تكرار سرد المتغير ، وهذا الجدول يوضح لك تلك العوامل :
---------------------------------------------------------------------------
http://www.fallosh.com/php/image19.jpg
---------------------------------------------------------------------------
إذن في مثالنا السابق بدلا من كتابته بالطريقة العادية سنكتبه هكذا :
PHP CODE:
0001
0002
<?php $mark += 10
 
?>

عوامل التزايد والتناقص ..

عامل التزايد ( ++ ) وعامل التناقص ( -- ) ولهذين العاملين تأثيرين اثنين وليس تأثير واحد فقط ... فعامل التزايد يأخذ قيمة ويزيد عليها ثم يعين لها القيمة الجديدة أو العكس ... بحيث يعين لها قيمة ثم يزيد عليها ، سيتوضح لك الأمر مع المثال التالي :
PHP CODE:
0001
0002
0003
<?php $kabsah 5;
echo ++
$kabsah
 
?>
هذا العامل يسمى ( عامل التزايد ما قبل ) فهو يأخذ قيمة kabsah ألا وهي 5 ويزيد عليها واحد ثم يطبعها .. لأننا أضفنا عامل زيادة ما قبل ، فتكون النتيجة المطبوعة = 6 .
PHP CODE:
0001
0002
0003
<?php $kabsah 5;
echo 
$kabsah++; 
 
?>
هذا العامل يسمى ( عامل التزايد ما بعد ) فهو يأخذ قيمة kabsah ألا وهي 5 ويطبعها ثم يزيد عليها .. لأننا أضفنا عامل زيادة ما بعد ، فتكون النتيجة المطبوعة = 5 ، ولكن قيمة $kabsah أصبحت 6 ولكنها طبعت قبل أن تصبح 6 .
( نفس الشيء يطبق على عامل التناقص ولكن يتم الإنقاص بدلا من الزيادة طبعا ! )

عامل المرجع ..

عامل المرجع ( & ) : هو عامل جديد ظهر في الإصدارة الرابعة من PHP وهو يقوم بعمل مرجع لقيمة المتغير للرجوع إليها في أي وقت ، شاهد المثال التالي :
PHP CODE:
0001
0002
0003
<?php $a 3;
$a $b
 
?>
هنا تصبح قيمة $b مضبوطة عند 3 ، ولكن ماذا لو غيرنا قيمة $a الآن :
PHP CODE:
0001
0002
<?php $a 5
 
?>
الذي سيحصل أن قيمة $b لن تتغير وستبقى مضبوطة عند 3 ... لماذا ؟ لأن php يأخذ عند التعيين قيمة المتغير ويخزنها في الذاكرة ، ففي حالتنا هذه أخذ php قيمة $a ألا وهي 3 وخزنها في $b فعندما غيرنا $a لم تتغير $b لأنها مخزنة عند 3 .
أتى عامل المرجع ( & ) في PHP4 ليتجنب تخزين قيمة للمتغير ويجعل القيمة عبارة عن مرجع يعود إليها المتغير الثاني ، ويستخدم كما يلي :
PHP CODE:
0001
0002
0003
0004
<?php $a 3;
$b = &$a;
$a 5
 
?>
قيمة $b مضبوطة عند 3 ولكن لأننا استخدمنا عامل المرجع فلقد أصبحت قيمة $a هي المرجع للمتغير $b فعندما غيرنا قيمة $a تغيرت قيمة $b مباشرة ، فأصبحت الآن قيمة $b مضبوطة عند 5 لأننا غيرنا $a من 3 إلى 5 .

عوامل المقارنة ..

تستعمل عوامل المقارنة للمقارنة بين قيمتين وذلك لنحصل على نتيجة معينة ، إما صح ( true ) وإما خطأ ( false ) .
إليك قوائم هذه العوامل ، وأذكرك أنه ليس شرطا أن تحفظها فهي كثيرة ، ولكن يمكنك اعتماد هذه الجداول كمراجع لك ترجع إليها لاحقا كلما احتجت هذه العوامل .
---------------------------------------------------------------------------
http://www.fallosh.com/php/image20.jpg
---------------------------------------------------------------------------
أريد أن أوضح هنا الفرق بينا العوامل ( = ) و ( == ) و ( === ) حتى لا تختلط عليكم بعض الأمور .. لقد بينا لكم سابقا ما هو عامل التعيين ( = ) ووضحنا أنه ليس علامة يساوي كما في الرياضيات ، ففي لغة php يستخدم العامل ( == ) للتعبير عن المساواة كما في الرياضيات ، على سبيل المثال :
PHP CODE:
0001
0002
0003
0004
<?php $a 4;
$b 5;
$a == $b
 
?>
ستكون النتيجة خطأ لأن $a لا يساوي $b !
أما العامل ( === ) فهو عامل جديد أيضا ظهر في php4 يعطي نتيجة صح إذا كان العاملين من متساويين ومن نفس النوع ، مثلا :
PHP CODE:
0001
0002
0003
0004
<?php $a 0;
$b 0.00;
$a === $b
 
?>
ستكون النتيجة خطأ بالرغم من أن $a تساوي $b ولكنهما ليسا من نفس النوع فـ$a نوعه integer بينما $b نوعه double مع أن لهما نفس القيمة ألا وهي 0 .

العوامل المنطقية ...

تستعمل هذه العوامل لدمج نتائج عوامل المقارنة ، وذلك للتأكد من صحتها .
---------------------------------------------------------------------------
http://www.fallosh.com/php/image21.jpg
---------------------------------------------------------------------------
مازال هناك مجموعة كبيرة من العوامل ... ونحن كمبتدئين لا نحتاجها في الوقت الراهن ، فمهمتي هنا هو إدخالك إلى عالم PHP ثم بعد ذلك يمكنك الرجوع إلى php Manual وتأخذ منه كل ما تشاء .

سنعود الآن إلى تطبيقنا العملي لنطبق عليه هذه العوامل ، فنحن نريد أن نحسب مجموع الطلبية وسعرها ومقدار ضريبة المبيعات عليها .

قم بإضافة الكود التالي على ملف order.php ....
-----------------------------------------------------------------------------
http://www.fallosh.com/php/image22.jpg
-----------------------------------------------------------------------------
السطر الأول من هذا الكود الذي أضفناه مهمته جمع كمية الأصناف التي طلبها .
السطر الثاني والثالث والرابع ، يقوم باحتساب سعر الطلبية وذلك بضرب كمية كل صنف في سعره ثم جمع أسعار الأصناف الثلاثة .
السطر الأخير الذي أضفناه هو دالة جاهزة في php ومهمته أن لا يقبل أي قيمة غير رقمية .

كما رأيتم فهي محض عمليات حسابية ، يعني فقط تحتاج خبرة في مادة الرياضيات :D !!
لاحظ الأسطر (2و3و4) ، مع أننا يمكننا كتابته في سطر واحد ، ولكن قمنا باستخدام المسافات وذلك لكي نفصل بين كل عملية من العمليات الثلاثة التي قمنا بها .

والآن نريد أن نطبع النتائج على الشاشة ، أظنكم الآن تعرفون كيف القيام بذلك ؟
على كل حال .. هذا هو الكود الذي يقوم بذلك :
-----------------------------------------------------------------------------
http://www.fallosh.com/php/image23.jpg
-----------------------------------------------------------------------------
الآن احفظ الملف وقم بتجربة الطلب food.htm ....
دعونا نزيد من تعقيد هذا الملف ، بإضافة ضريبة المبيعات عليها :eek:
أضف الكود التالي على الملف :
-----------------------------------------------------------------------------
http://www.fallosh.com/php/image24.jpg
-----------------------------------------------------------------------------
السطر الأول من الكود قمنا بتحديد قيمة الضريبة ألا وهي ( 0.10 ) أي 10% من السعر الإصلي .
ثم في السطر الثاني قمنا بعملية حسابية لحساب السعر مع الضريبة ، أما السطر الثالث فشرحت مهمته قبل قليل .
السطر الأخير هو لطباعة السعر مع الضريبة .
الآن جرب الملف food.htm مرة أخرى ...
انظر إلى المرحلة التي وصلت إليها في php ... نعم لقد وصلنا إلى مرحلة متقدمة جدا ... وبإذن الله تعالى ستصل إلى الاحتراف فلغة php سهلة وبسيطة ولكن عليك معرفة كيف تخوض فيها و كيف تتعلمها ......

سوالف



الكاتب: جاكوار انقر هنا لمراسلة جاكوار أنقر هنا للإنتقال إلى موقع جاكوار إضافة للمفضلة إضافة لمفضلة Google إضافة لمفضلة Delicious إضافة لمفضلة Digg إضافة لمفضلة Facebook
خيارات الدرس : ارسل الدرس لصديق ارسل الدرس لصديق  طباعة الدرس طباعة الدرس  حفظ الدرس كملف Word حفظ الدرس كملف Word 



 

مكتبة الصور

مكتبة الصوتيات

مكتبة البطاقات

مكتبة الأخبار

مكتبة الفيديو

مكتبة الفلاشيات

مكتبة الجوال ألعاب الجوال نغمات الحمية والرجيم موسوعة الاعشاب تطوير الذات
ديوان الشعر عالم الجنس عالم المرأة الأذكار شرح البرامج

قنوات فضائية

الأدعية الصحيحة المنتديات مكتبة القصص موسوعة الطبخ

مجلة قصيمي نت

موسوعة الكتب