بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
سنتعرف فى هذا الموضوع إن شاء الله على ال references فى ال php
فى البداية لنتعرف ماذا يحدث عند تنفيذ هذا السطر من الكود
كود PHP:
$firstVar = $secVar;
ما سيحدث هو نسخ قيمة المتغير secVar واسنادها الى firstVar لاحظ هنا كلمة نسخ القيمة هذا ما يعنى ان سيكون لدينا نسختين من نفس القيمة كل منها مسند الى متغير منفصل
ولكن هذا امر معروف اى انى لم اتى بجديد الى الان
ولكن هذه مقدمة لما اود طرحه ولناخذ هذا السطر ونجرى عليه تعديل بسيط ليكون
كود PHP:
$firstVar =& $secVar;
لاحظ علامة & بعد علامة المساواة = , ماذا يعنى ذلك ؟ هذا يعنى اعطاء المتغير firstVar نفس قيمة المتغير secVar لاحظ نفس القيمة وليس نسخة من القيمة وما الفرق بين الحالتين؟ الفرق هو انك لوقمت بتعديل قيمة المتغير firstVar بعد ذلك ستتغير ايضا قيمة secVar تلقائيا وذلك لان المتغيرين يشيران لنفس القيمة
اذا نلخص من ذلك ان ال references هى جعل رابطة بين متغيرين اواكثر حيث يشير جميعهم الى نفس القيمة واذا تغير قيمة احدهم تغير بالتالى قيمة البقية.
والان ناتى لاستخدام ال references , تظهر اهمية ال reference فى التعامل مع الكائنات حيث فى اغلب الاحيان تحتاج لانشاء كائن جديد يحمل نفس قيمة الكائن الاصلى وليس نسخة منه وايضا تحتاج عند تمرير كائن الى وظيفة ان تمرره بنفسه وليس نسخة منه.
وايضا هناك استخدام هام وهو تمرير متغير لوظيفة ك reference وبذلك اذا تم تغيير قيمة هذا المتغير داخل الوظيفة فسيتغير قيمته الاصلية, لنأخذ مثال على هذا
كود PHP:
<?php
function alterVar(&$param){
$param = 'changed';
}
$var1 = 'test';
echo $var1; // will print test
alterVar($var1);
echo $var1; // will print changed
?>
كما تلاحظ قمت بتعريف معامل الوظيفة param على انه reference , وبذلك عندما ارسلت للوظيفة المتغير var1 وقامت بتغير قيمته بداخلها اثر هذا التغيير على قيمته الاصلية.
هذه نبذة بسيطة عن ال references ارجو ان اكون وفقت فى توضيحها لانى اشعر انى لا اجيد الشرح