مدخلك الصحيح لعالم php : المتغيرات
المتغيرات هي كل شيء في php ، فإذا أحسنت استخدام المتغيرات وفهمتها جيدا ستحسن البرمجة بواسطة php إن شاء الله ..
إن أي مدخلات يمكن للزائر إدخالها على صفحتك تسمى ( متغير ) لماذا ؟ لأنها تتغير حسب ما أدخله زائر الصفحة ، فمثلا : ربما يطلب شخص ( 4 كبسة و 1 سلطة و 5 عصير ) ولكن ربما يأتي شخص آخر ويطلب ( 2 كبسة و 2 سلطة و 4 عصير ) … إذن من هنا نعلم لماذا سميت “متغيرات” !
ويمكن معرفة المتغيرات في php بسهولة فهي تبدأ دوما بعلامة الدولار ($) بينما لا تكون علامة الدولار ($) موجودة في كود html ..
هناك طريقتان للوصول إلى بيانات النموذج من خلال المتغيرات ..
إما كما فعلنا سابقا في المثال وذلك بكتابة اسم المتغير في php مضافا إلى أوله علامة الدولار وإما باستخدام إحدى هاتين المصفوفتين وذلك حسب طريقة النقل التي استخدمتها :
- $HTTP_GET_VARS في حال كانت طريقة نقل البيانات = get
- $HTTP_POST_VARS في حال كانت طريقة نقل البيانات = post
ونستخدمها كما يلي :
من كود php قم بحذف الكلمة : $kabsah وأدخل بدلا منها التالي :
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]قم بتجربة النموذج سترى أنه قام بنفس العملية .. ولكن ربما تتسائل ما الفرق بينهما ؟ سؤال وجيه جدا .. النمط الثاني يعمل بشكل أسرع ويتجنب إنشاء متغيرات تلقائية غير مطلوبة .. أما النمط الأول فهو أسهل للقراءة والكتابة ( ويجب أن يكون المرشد register_globals مضبوطا على on حتى يعمل ، ولكن لا تخف فهذا المرشد هو مضبوط أصلا على On إلا إذا قام مدير السيرفر بضبطه على off ) .
ضم السلاسل :السلاسل هي أي شيء نريده أن يظهر على الشاشة في المستعرض ، وتنقسم السلاسل إلى قسمين : سلاسل حرفية وهي تكون ثابتة كنص أو أرقام وسلاسل متغيرة وهي المتغيرات :
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]وهناك طريقتين لضم السلاسل :
إما كما هو موضح بالصورة وكما فعلنا في مثالنا السابق .. وذلك بوضع السلسلة المتغيرة خارج علامات الاقتباس المزدوجة (” “) ووضع نقطة ( وهي مهمة لضم السلسلة ) .
وإما بوضع السلسلة المتغيرة داخل علامات الاقتباس المزدوجة وحذف النقطة كما يلي :
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]يمكنك استخدام أي من الطريقتين حسب ذوقك ..
انتبه لعامل ضم السلاسل النقطة (.) فلو أردنا أن نضم 3 سلاسل سيكون الشكل كما يلي :
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]وأحب أن أنوه أن هناك نوعين من السلاسل ، سلاسل بعلامات اقتباس مزدوجة (” “) وسلاسل بعلامات اقتباس فردية (‘ ‘) الفرق بينهما أن النوع الأول يمكنك كتابة سلاسل متغيرة داخله أما الثاني فلا ، حاول أن تجربها بنفسك وترى النتيجة ..
المعرفات :المعرفات هي أسماء المتغيرات والدالات والفئات .. ما يهمنا هنا هو اسماء المتغيرات
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]والمعرفات تنطبق عليها القواعد التالية :
- يمكن أن تكون المعرفات بأي طول وتتألف من أرقام وأرحرف وخط تسطير سفلي ( _ ) وعلامات دولار .
- لا يمكن أن تبدأ المعرفات بعدد .
- المعرفات حساسة لحالة الأحرف الصغيرة والكبيرة فـ $kabsah ليست كـ $KaBsAh .
- المعرفات للمتغيرات يمكن أن تحمل اسم دالة ولكن يفضل عدم عمل ذلك حتى لا يحصل تضارب .
تعيين قيم للمتغيرات :نستخدم عامل التعيين ( = ) لتعيين قيمة محددة لمتغير ما .
فلنأخذ مثالنا العملي ونضيف عليه الكود التالي :
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]الآن نكون قد عينا قيمتين لمتغيرين الأول لكمية الطلب والثاني لسعر الطلبية كلها ، ولقد قمنا بتعينها ( 0 ) وذلك لكي لا نضيف على ما قد يطلبه الزبون أي شيء .
أنواع المتغيرات :
- integer (رقم صحيح) : يستعمل للأرقام الكاملة .
- Double (مزدوج) : يستعمل للأرقام بكسور عشرية .
- String (سلسلة) : يستعمل لسلاسل الأحرف والكلمات .
- Array (مصفوفة) : يستعمل لتخزين عدة بنود بيانات من نفس النوع .
- Object (كائن) : يستعمل لتخزين تواجد فئات .
قوة الأنواع :إن أنواع المتغيرات في php ضعيفة جدا ، أي أنها تتغير بكل سهولة وليست ثابتة كالمتغيرات في لغات البرمجة الأخرى ..
فمثلا في تطبيقنا العملي قمنا بتعيين القيمة ( 0 ) للمتغير $total أي أن نوع هذا المتغير هو integer (رقم صحيح) ولكن ماذا لو كتبنا بعد ذلك سطرا آخر :
?[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] PHP
1
| $total = “السلام عليكم”; |
سوف يتحول نوع المتغير من integer إلى string ، فلغة php تقوم بتغيير نوع المتغير حسب القيمة المخزنة فيه في أي وقت كان .
تحويل الأنواع :يصعب علي شرح هذا الأمر لكن سأحاول جهدي …. خذ هذا المثال من تطبيقنا العملي :
?[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] PHP
1 2
| $total = 0; $totalprice = (double)$total; |
السطر الثاني من الكود يأخذ قيمة ونوع المتغير الأول ثم يقوم بتحويل النوع إلى double ( رقم عشري ) ولكن يبقى الأول على ما هو عليه والثاني يصبح مزدوج .
وبهذه الطريقة يمكنك تحويل الأنواع فقط قم بكتابة النوع الذي تريد أن تحول عليه بين قوسين قبل المتغير .
المتغيرات المتغيرة :تمكننا المتغيرات المتغيرة من تغيير المعرف بشكل ديناميكي .. كيف ؟
مثلا .. نقوم بعمل متغير ما وتعين له قيمة محددة :
?[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] PHP
يمكننا الآن استعمال $$chname بدلا من $kabsah .. مثلا نود تعيين قيمة $kabsah على ( 3 ) فنقوم بكتابة ما يلي :
?[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] PHP
هذا يعطي نفس النتيجة لو كتبناه هكذا …
?[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] PHP
وبهذا نستطيع استخدام متغير واحد لمعالجة عدة متغيرات في حلقة بدلا من الاضطرار إلى استعمال كل متغير بشكل منفصل .
ربما هذا الموضوع غامض الآن ولكن ستفهمه أكثر عندما تتقدم في تعلم اللغة إن شاء الله ولا يمكنني أن أشرح أكثر في هذا الموضوع لتشعبه .
الثوابت :كما تعلمنا سابقا يمكننا تغير قيمة المتغير بكل سهولة ، ماذا لو أردنا أن نعطي قيم ثابتة لبعض الأمور بحيث لا يمكن تغييرها لاحقا في أي مكان من الكود …
لقد أتاحت لنا لغة php عمل ذلك بواسطة الثوابت وعن طريق الأمر define.
لنطبق على مثالنا العملي مباشرة ..
نريد أن نعين أسعار ثابتة للوجبات ، فمثلا نريد أن نحدد سعر الكبسة والسلطة والعصير بحيث يمكننا بعدها احتساب السعر الكلي للطلبية .
أضف الكود التالي على الكود في الملف order.php :
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]تلاحظ أننا كتبنا الثوابت بحروف كبيرة ، مع أنه لا يشترط ذلك ، ولكنه يفضل وبشدة وذلك لتمييزها عن المتغيرات ، وهناك ملاحظة هامة : عندما تريد عرض الثوابت على الشاشة فإنك لا تستخدم امامها علامة الدولار $ بعكس المتغيرات التي يجب أن تستخدم معها علامة الدولار لتعمل .