+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 پاسخ 483 بازدید
0 امتیاز
0 پاسخ 448 بازدید
0 امتیاز
1 پاسخ 7.4هزار بازدید
0 امتیاز
0 پاسخ 363 بازدید
0 امتیاز
0 پاسخ 383 بازدید
0 امتیاز
1 پاسخ 419 بازدید
0 امتیاز
0 پاسخ 366 بازدید
0 امتیاز
0 پاسخ 415 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط mo4sa (0 امتیاز)
...