الخميس، 9 أغسطس 2012

الدرس الرابع: المتغيرات والتعامل معها Variables in PHP

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

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

- اسم Name.
- نوع Type or Datatype.
- قيمة Value or Data.
اسم المتغير، هو اسم الحاوية، الذى عندما تستدعى هذا الاسم فبذلك تقوم بإستدعاء قيمته.
نوع المتغير، هو نوع البيانات التى ستدخل فى هذا المتغير، ولحسن الحظ أن PHP لغة غير معقدة بخصوص أنوع المتغيرات، فهى لا تطلب منك تحديد نوع المتغير كما فى باقى اللغات.
قيمة المتغير، هى البيانات الموجودة بداخل هذا المتغير، وفى لغات البرمجة العادية يجب أن تكون نوع البيانات المدخلة فى هذا المتغير هو نفس النوع الذي تم تحديده للمتغير، لكن فى PHP، يمكنك ببساطة تغيير قيمة (بيانات) المتغير وسيتم تلقائيًا تغيير نوع المتغير! وهذا ما يسمى Weak Type، ولذلك لغة PHP تصنف على أنها لغة Weak Type، أى يمكن تغيير قيمتها بسهولة، ويتغير معها نوع ها أيضًا تلقائيًا!
- أهمية المتغيرات.
كما قلت سابقًا، بدون متغيرات لا يوجد ما يسمى برنامج ! فالمتغيرات هى أساس البرمجة وأهم جزء فيها، فسوف تضطر كثيرًا إلى إدخال وإخراج بيانات من قاعدة البيانات، وطريقة إدخالها وإخراجها سيتم غالبًا عن طريق وضع البيانات فى متغير أولاً ثم إدخال المتغير إلى قاعدة البيانات، وغيرها وغيرها من المهام الأساسية فى أى برنامج PHP، يجب إستخدام المتغيرات فيها بشكل أساسي جدًا.
- الفرق بين الإعلان والتعريف عن متغير.
عندما تنوى البدء الفعلى فى كتابة شيفرة PHP تنوى فيها استخدام وإنشاء المتغيرات، فيصادفك دائمًا مصطلحين متشابهين إلى حد كبير، ويجب أن تعرف كيف تقوم بالتمييز بينهم؛ حتى لا يحدث معك لبس أثناء التعليم، إذًا فلنتعرف على الفرق بين الاثنين، وسيتم ذلك عبر وضع المصطلح وتعريفه، وستدرك وحدك الفرق بينهم.
الإعلان عن المتغيرات Variables Declaring.
     الإعلان عن متغير هو إعلان إنشاؤه فى الذاكرة، وتحديد اسم للمتغير.
تعريف المتغير Definition of variable.
     تعريف متغير هو تحديد قيمة Value للمتغير، أى إدخال بيانات فى المتغير، وأيضًا تحديد نوع المتغير، ويتم فى لغة PHP تحديد نوع المتغير بعد تحديد قيمة المتغير.
إذًا الإنشاء وتحديد الاسم فى الذاكرة هى وظيفة الإعلان، أما التعريف، وظيفته تحديد القيمة والنوع.
- طريقة الإعلان والتعريف عن متغير فى PHP.
إذا كانت لديك خبرة سابقة بأى من لغات البرمجة، فبالطبع تدرك أن طريقة الإعلان والتعريف عن المتغيرات واستخدامها متشابهة فى معظم اللغات، لكن فى PHP مختلفة قليلاً، ولنبدأ فى التعرف على الإعلان عن المتغيرات.
الإعلان عن متغير فى لغة PHP يتم عبر كتابة علام $ متبوعة باسم المتغير مباشرة بدون مسافات، وبهذا فقط تكون قد قمت بالإعلان عن متغير، وكمثال بسيط:

<?php
$name;
?>
لاحظ أننا لم ننسى قاعدة إنتهاء السطور بالفاصلة المنقوطة، وبهذا أنت قمت بالإعلان عن متغير فى الذاكرة، يمكنك بعد ذلك استدعاء قيمة هذا المتغير فى أى وقت فى برنامجك بعد هذا عن طريقة كتابة هذا الاسم، ولكن كيف سنقوم بتعريف المتغير؟ أى كيف سنقوم بتحديد قيمة له؟؟ يمكنك ذلك عبر كتابة سطر ثانٍ، عبر  إستدعاء اسم المتغير السابق الإعلان عنه، ثم إتباعه بمعامل الإسناد Assignment Operator ثم بالقيمة المُرادة، وتكتب النصوص ما بين أقواس إقتباس زوجية أو فردية، وتكتب الأرقام بدون أقواس.

<?php
$name;
$name = "Ahmed";
?>
لكن يمكنك إختصار تلك الطريقة، عبر الإستغناء عن السطر الثاني (سطر الإعلان)، وكتابة السطر الثالث فقط، فبذلك يكون السطر الثالث بمثابة إعلان وتعريف فى نفس الوقت !

<?php
$name = "Ahmed";
?>
وبهذا نكون قد انتهينا من الجزء الخاص بالإعلان والتعريف عن متغير، أليست PHP سهلة؟؟!
- قواعد تسمية المتغيرات.
لتسمية المتغيرات قواعد فى لغة PHP، وتلك القواعد هى ببساطة كالتالى:
- اسم المتغير يجب أن يبدأ بحرف من A,Z أو _ فقط ولا يبدأ اسم المتغير برقم أو رموز لاتينية، ثم بعدها يأتي التشكيل من الحروف والأرقام والرموز.
- لا يجوز أن يكون اسم المتغير من الكلمات المحجوزة فى اللغة keywords مثل echo او print او while إلخ.
- طباعة المتغيرات.
كما قلت سابقًا للوصول إلى قيمة المتغير، يجب عليك ذكر اسم المتغير فقط ! لكن لا تنس أن تضع رمز $ قبل اسم المتغير كي يتم الوصول إلى قيمة المتغير بشكل صحيح. ويمكنك طباعة المتغير عن طريق كتابة أى من الكلمات المحجوزة للطباعة مثل print او echo متبوعة مباشرة بـاسم المتغير بدون اقواس اقتباس، او يمكنك وضع اسم المتغير بين اقواس اقتباس زوجية فقط، لأن الفردية لا تستطيع الوصول إلى قيمة المتغير لطباعتها.
ولنأخذ مثالاً توضيحيًا.

<?php
$name = "Ahmed";
echo $name;
?>
فى هذا المثال قمت بكتابة اسم المتغير مباشرة، وبذلك عندما تذهب إلى الصفحة ستجد أنه تم طباعة كلمة Ahmed وهى قيمة المتغير $name ، ولكن يمكنك أيضًا أثناء الطباعة إدراج اسم المتغير ما بين علامتي إقتباس زوجية كالتالى:

<?php
$name = "Ahmed";
echo "$name";
?>
وستظهر معك نفس النتيجة ! وسأترك لك مثالاً سادسًا للتخمين النتيجة التى ستظهر من تنفيذ هذا المثال:

<?php
$name = "Ahmed";
$var = $name;
echo "$var";
?>
فى الشيفرة السابقة قمنا بالإعلان عن متغير جديد باسم $var ثم قمنا بإستدعاء قيمة المتغير $name فوضعناه فى المتغير الجديد، ثم قمنا بطباعة المتغير الجديد الذى حصل على القيمة Ahmed ، فعندما تقوم بالطباعة، سيطبع لك Ahmed.
- إلغاء المتغيرات.
إذا كنت إنتهيت من كتابة استخدام أحد المتغيرات، وتريد حذفه كي لا يسبب لك لبس أثناء البرمجة، يمكنك حذفه عبر إستخدام دالة unset، عبر كتابة unset ثم فتح قوسين عاديين ووضع اسم المتغير ما بين القوسين، وسيتم حذف المتغير من الذاكرة بقيمته.

<?php
$name = "Ahmed";
unset($name);
?>
لكن لاحظ أن لغة PHP لغة تفسيرية، أن أنها تمشى وتقوم بتفسير الشيفرة سطر بسطر، ولذلك فأنه بعد جملة unset إذا حاولت طباعة المتغير الذي تم حذفه فسيتم طباعة خطأ Error لك، إما إذا حاولت طباعة المتغير قبل جملة unset فسيطبع لك المتغير بشكل طبيعي.
حقيقةً تعبت ومللت من الكتابة !
أتمنى أن يكون الدرس فى محل رضاكم، ألقاكم فى التدوينات القادمة.
المزيد من المواضيع:

1 التعليقات: