+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 پاسخ 453 بازدید
0 امتیاز
0 پاسخ 433 بازدید
0 امتیاز
1 پاسخ 7.4هزار بازدید
0 امتیاز
0 پاسخ 341 بازدید
0 امتیاز
0 پاسخ 365 بازدید
0 امتیاز
1 پاسخ 389 بازدید
0 امتیاز
0 پاسخ 348 بازدید
0 امتیاز
0 پاسخ 394 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط mo4sa (0 امتیاز)
...