& للمصدرية (يعني استخدمها قبل استدعاء اسم المتغير) مثلا اذا قمنا بعمل دالة كا التالي:
function valuate(&$var){
$var = 'Rashid';
}
لاحظ المتغير (في الباراميتر) مسبوق بعلامة &
معناه أي متغير ستضعه في هذه الدالة (سوف تتغير قيمته الاصلية) لنجرب الدالة كا التالي
$name = 'Muhammad';
valuate($name);
echo $name;
لاحظ سوف يقوم بطباعة 'Rashid' لان الدالة قامت بتعديل القيمة الاصلية للمتغير داخل وخارج الدالة. بينما لو قمت بإزالة & من باراميتر الدالة ستقوم بطباعة 'Muhammad' لان المتغير يكون تغير داخل الدالة فقط ولن يؤثر ذلك على خارجها. (لذلك & معناها المصدر الاصلي للمتغير)
لاحظ في الكود الثاني استعملت الشرط مرتان ولكي أختصر الكود سأستعمل && عوض & في شرط واحد يعني اذا لم يجد المتغير فلن يتم التحقق من قيمته واذا وجده سيتم التحقق من قيمته كما في الكود الثاني لكن هنا مختصر لن أكتب الشرط مرتان شاهد هذا
اذا كتبت الكود الأول وحذفت متغير $var سوف يظهر لك خطأ يقول بأن المتغير $var مفقود أما اذا كتبت الكود الأخير وحذفت المتغير $var لن يظهر لك الخطأ ولن يتم تنفيذ الكود