المتغيرات هي "حاويات" تستخدم لتخزين المعلومات:
<?php $x = 5 ; $y = 6 ; $ z = $x + $y ; $ز ? >
س=5y=6z=x+y
في الجبر، نأخذ حرفًا (مثل x) ونعطيه قيمة (مثل 5).
من التعبير أعلاه z=x+y، يمكننا حساب قيمة z لتكون 11.
في لغة PHP، تسمى هذه الأحرف بالمتغيرات .
المتغيرات هي حاويات تستخدم لتخزين البيانات. |
كما هو الحال في الجبر، يمكن تعيين قيمة لمتغيرات PHP (x=5) أو تعبير (z=x+y).
يمكن أن تحتوي المتغيرات على أسماء قصيرة جدًا (مثل x وy) أو أسماء وصفية أكثر (مثل العمر واسم العائلة والحجم الإجمالي).
قواعد PHP المتغيرة:
تبدأ المتغيرات بعلامة $ متبوعة باسم المتغير
يجب أن تبدأ أسماء المتغيرات بحرف أو حرف سفلي
يمكن أن تحتوي أسماء المتغيرات فقط على أحرف أبجدية رقمية وشرطات سفلية (Az، 0-9، و _ )
لا يمكن أن تحتوي أسماء المتغيرات على مسافات
أسماء المتغيرات حساسة لحالة الأحرف (y و $Y هما متغيران مختلفان)
تعتبر عبارات PHP ومتغيرات PHP حساسة لحالة الأحرف. |
ليس لدى PHP أي أمر لإعلان المتغيرات.
يتم إنشاء المتغير في المرة الأولى التي تقوم فيها بتعيين قيمة له:
<?php $ txt = " مرحبا بالعالم ! " ; $ x = 5 ;
في تنفيذ العبارة أعلاه، سيحمل المتغير txt القيمة Hello World!، وسيحمل المتغير x القيمة 5 .
ملاحظة: عندما تقوم بتعيين قيمة نصية لمتغير، ضع علامات الاقتباس حول قيمة النص.
في المثال أعلاه، لاحظنا أنه ليس من الضروري الإعلان عن نوع بيانات المتغير إلى PHP.
سيقوم PHP تلقائيًا بتحويل المتغير إلى نوع البيانات الصحيح بناءً على قيمته.
في لغة البرمجة المكتوبة بقوة، يجب علينا أن نعلن (نحدد) نوع واسم المتغير قبل استخدامه.
نطاق المتغير هو جزء من البرنامج النصي حيث يمكن الرجوع/استخدام المتغير.
لدى PHP أربعة نطاقات متغيرة مختلفة:
محلي
عالمي
ثابت
المعلمة
المتغيرات المحددة خارج جميع الوظائف لها نطاق عالمي. بالإضافة إلى الوظائف، يمكن الوصول إلى المتغيرات العامة عن طريق أي جزء من البرنامج النصي للوصول إلى متغير عام في دالة، تحتاج إلى استخدام الكلمة الأساسية العامة.
المتغيرات المعلنة داخل دالة PHP هي متغيرات محلية ولا يمكن الوصول إليها إلا داخل الدالة:
<?php$x = 5 ; // المتغير العام function myTest (){ $y = 10 ; // المتغير المحلي echo " <p>متغير في دالة الاختبار:<p > " ; ; echo "<br>" ; echo "المتغير y هو: $y " ;} myTest ();echo "<p>متغير خارج وظيفة الاختبار:<p>" ;echo "المتغير x هو: $x " ;echo "<br>" ;echo "المتغير y هو: $y " ? >
في المثال أعلاه، تحدد الدالة myTest() المتغيرات $x و$y. تم التصريح عن المتغير $x خارج الدالة فهو متغير عام، والمتغير $y تم التصريح عنه داخل الدالة فهو متغير محلي.
عندما نستدعي الدالة myTest() ونخرج قيممتغيرين، ستخرج الدالة قيمة المتغير المحلي $y، لكن لا يمكنها إخراج قيمة $x، لأن المتغير $x محدد بالخارج الدالة ولا يمكن استخدامها داخل الدالة إذا للوصول إلى متغير عام في دالة، استخدم الكلمة الأساسية العامة.
ثم نقوم بإخراج قيم المتغيرين خارج الدالة myTest()، ستخرج الدالة قيمة جميع المتغيرات المحلية $x، لكن لا يمكنها إخراج قيمة $y، لأن المتغير $y محدد في الدالة. وهو متغير محلي.
يمكنك استخدام نفس اسم المتغير في وظائف مختلفة، لأن أسماء المتغيرات المعرفة في هذه الوظائف هي متغيرات محلية وتؤثر فقط على تلك الوظيفة. |
يتم استخدام الكلمة الأساسية العالمية للوصول إلى المتغيرات العامة داخل الوظيفة.
لاستدعاء متغير عام محدد خارج الدالة داخل دالة، نحتاج إلى إضافة الكلمة الأساسية العامة قبل المتغير الموجود في الدالة:
<?php $x = 5 ; $ y = 10 ; اختباري ( ) { عالمي $ x , $y ; $y = $x + $y } myTest ( ) ؛ $y ; // الإخراج 15 ?>
تقوم PHP بتخزين كافة المتغيرات العامة في مصفوفة تسمى $GLOBALS[ index ]. يحمل الفهرس اسم المتغير. يمكن الوصول إلى هذه المصفوفة داخل الوظيفة أو استخدامها مباشرة لتحديث المتغيرات العامة.
يمكن كتابة المثال أعلاه على النحو التالي:
<?php $x = 5 ; $ y = 10 ; اختباري ( ) { $ GLOBALS [ ' y ' ] = $ GLOBALS [ ' x ' ] + $ GLOBALS [ ' y ' ] } myTest ( ) ؛ $y ? >
عند اكتمال دالة، عادةً ما يتم حذف جميع متغيراتها. ومع ذلك، في بعض الأحيان تريد عدم حذف متغير محلي.
للقيام بذلك، استخدم الكلمة الأساسية الثابتة في المرة الأولى التي تعلن فيها عن المتغير:
<?php وظيفة اختباري ( ) { ثابت $ x = 0 ; $x ; $x ++ } myTest ( ) ; myTest ( ) ;
ثم، في كل مرة يتم استدعاء الدالة، سيحتفظ المتغير بالقيمة من المرة السابقة التي تم استدعاء الدالة فيها.
ملاحظة: هذا المتغير لا يزال محليًا للدالة.
المعلمات هي متغيرات محلية يتم تمرير قيمها إلى الوظيفة من خلال رمز الاستدعاء.
يتم الإعلان عن المعلمات في قائمة المعلمات، كجزء من إعلان الوظيفة:
<?php وظيفة ماي تيست ( $x ) { صدى $ x } ماي تيست ( 5 ) ? >
سنناقش هذا بمزيد من التفصيل في فصل وظائف PHP.