مدى المتغيرات فى بى اتش بى variable scopes in php


إذا كان لديك برنامج كبير فقد تقع في حيرة اختيار اسماء المتغيرات. لكن في ( PHP ) يمكنك تحديد مجال المتغيرات اي يمكنك مثلاً أن تخبر ( PHP ) أن المتغير x$ يتم استخدامه فقط داخل دالة
ثم يتجاهل وجود هذا المتغير بانتهاء تشغيل الدالة. بهذا يمكنك استخدام نفس الإسم للمتغير في مكان آخر. أنظر الكود التالي
<?php
   $var = "this is a variable";
   echo "$var".'<br>';// سيتم طباعة المتغير بشكل طبيعي
   function test(){
       $x= 5;
       $var=2;
       echo "$x".'<br>',"$var";
   }
   echo "$x".'<br>';// لن تتم الطباعة مع ظهور خطأ
   echo "$var".'<br>';
   test ();
?>
1- في السطر رقم 2 قمنا بتعريف المتغير x$ ثم طلبنا طباعته في السطر رقم 3 وسيتم طباعته بدون أخطاء.
4- وظيفة هذه الدالة هي طباعة المتغيرين x$ و var$ كما يظهر في السطر رقم 7
5- عند طلب طباعة المتغير x$ من خارج الدالة كما يظهر في السطر رقم 9 سيظهر خطأ بأن هذا المتغير غير معروف
6- أيضاً عند طلب طباعة المتغير var$ سيتم طباعة القيمة المعروفة خارج الدالة “this is a variable” ولن يتم طباعة القيمة التي تم تعريفها داخل الدالة
7- لكن عند استدعاء الدالة نفسها سيتم طباعة قيم المتغيرات وهي 5,2 بشكل طبيعي
وبالتالى يتم تعريف مجالات المتغيرات (PHP VARIABLES SCOPES ) بأنها حدود الوصول للمتغيرات.
أيضاً إذا كان هناك متغير معرف خارج الدالة وتريد استخدامه في الدالة فهذا غير مسموح ,ولكن يمكن تعريف المتغير كوسيط للدالة Function Arguments. لاحظ الكود التالي
<?php
   $var = "this is a variable";
   function test(){
        return $var;// محاولة استدعاء المتغير من خارج الدالة
   } 
   echo test();
?>
الكود السابق لن يعمل بشكل سليم لأن المتغير var$ لم يتم تعريفه داخل الدالة, ولكي يعمل الكود بشكل سليم يجب تعريف المتغير داخل الدالة أو كوسيط Argument في تعريف الدالة بهذا الشكل
<?php
$var='this is a variable';
   function test($var='this is a variable')//تعريف المتغير كوسيط
     {
       $newvar= "Hey!".' '. $var;
       return $newvar;

} 
echo test($var).'<br>';//استدعاء الدالة باستخدام الوسيط 
echo $var; 
?>
من هنا يجب أن تعرف أنه توجد مجالات للمتغيرات تحدد طريقة الوصول للمتغير وهي :

مجالات المتغيرات

1- المتغيرات محلية المجال Local Scope variables
2- المتغيرات شاملة المجال Global Scope variables
3- المتغيرات ثابتة المجال
4- المتغيرات فوق شاملة المجال Superglobal Scope variables
الآن تعرف أنه لايمكن استخدام المتغير إلا في المجال المخصص له, وإذا أردت استخدام متغير ما داخل دالة فلابد أن تقوم بتعريف المتغير داخل الدالة أو تمرير المتغير كوسيط للدالة, لكن هذا ليس كل شيئ فهناك طريقة أخرى لاستخدام متغيرات تم تعريفها خارج الدالة وذلك عن طريق تمرير المتغيرات إلى الدوال بالمرجعية Passing variables by reference.












مدى المتغيرات فى بى اتش بى variable scopes in php مدى المتغيرات فى بى اتش بى variable scopes in php Reviewed by tarik on فبراير 02, 2019 Rating: 5

ليست هناك تعليقات:

يتم التشغيل بواسطة Blogger.