+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 پاسخ 256 بازدید
0 امتیاز
0 پاسخ 255 بازدید
0 امتیاز
1 پاسخ 1.2هزار بازدید
0 امتیاز
0 پاسخ 258 بازدید
0 امتیاز
0 پاسخ 223 بازدید
0 امتیاز
1 پاسخ 252 بازدید
0 امتیاز
0 پاسخ 219 بازدید
0 امتیاز
0 پاسخ 227 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط mo4sa (0 امتیاز)
...