+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 پاسخ 410 بازدید
0 امتیاز
0 پاسخ 404 بازدید
0 امتیاز
1 پاسخ 7.3هزار بازدید
0 امتیاز
0 پاسخ 301 بازدید
0 امتیاز
0 پاسخ 334 بازدید
0 امتیاز
1 پاسخ 351 بازدید
0 امتیاز
0 پاسخ 311 بازدید
0 امتیاز
0 پاسخ 362 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط mo4sa (0 امتیاز)
...