+1 امتیاز
قبل در برنامه نویسی توسط (164 امتیاز)
ویرایش شده قبل توسط

با سلام

تفاوت گرفتن نمونه از یک شئ بصورت ارجاعی با معمولی چیست؟ البته من این instance گیری رو در حالت static دیدم .سعی میکنم با یک مثال بیشتر توضیح بدم:

$obj = OBJECT::function();
$obj =& OBJECT::function();

حالا چه تفاوتی بین این دو نمونه گیری است و کجا ها کاربرد داره؟

1 پاسخ

+1 امتیاز
قبل توسط (1.1هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

فکر می کنم با مثال زیر کاملا تفاوتشون رو متوجه بشی:

$a = 42;
$b =& $a;
$c = $a;

echo $a; // 42
echo $b; // 42
echo $c; // 42

$a = 13;
echo $a; // 13
echo $b; // 13 
echo $c; // 42

وقتی در PHP یک متغییر بصورت ارجاعی (reference) مقدار دهی می شود (مثل b) چون b به جایی که a ارجاع می کند (اشاره می کند) مقدار دهی شده هرگونه تغییر در آن محل در b هم تاثیر می گذارد. در حالی که متغییر c بصورت معمولی مقدار دهی شده و هر گونه تغییرات در مقدار a دیگر در c تاثیری ندارد.

سوالات مشابه

+1 امتیاز
2 پاسخ 404 بازدید
0 امتیاز
0 پاسخ 399 بازدید
0 امتیاز
1 پاسخ 7.3هزار بازدید
0 امتیاز
0 پاسخ 296 بازدید
0 امتیاز
0 پاسخ 330 بازدید
0 امتیاز
1 پاسخ 347 بازدید
0 امتیاز
0 پاسخ 308 بازدید
0 امتیاز
0 پاسخ 358 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط mo4sa (0 امتیاز)
...