Всем привет!
Недавно натолкнулся на такое понятие в ПХП как возвращение по ссылке функцией. Раньше знал что есть присвоение значения по ссылке:
Может пример не совсем удачный но понятно что $a и $b ccылаются на одно и то же место хранения значения.
Но вот как возвращается значения по ссылке функцией - никак не могу понять!!
Погуглил, пояндексил - дурацкие примеры на этот счет из которых х[а-я]*й че поймешь!
Поэтому написал пару своих .. и все действительно работает .. но НЕ ПОНИМАЮ как!
Каким-то подсознанием я все же дошел до этого но объяснить для себя не могу!
Вот примеры
Пример1:
CODE ( text):
скопировать код в буфер обмена
$arr = array("one", "two", "free"); function &ref($str, &$arr) { foreach($arr as $key => $value) { if($str == $value) { return $arr[$key]; } } } $s =& ref("two", $arr); $s = 5; print_r($arr);
Пример2:
CODE ( text):
скопировать код в буфер обмена
class M { public $my = 8; function &N($obj, $var) { $obj->my = $var; return $obj->my; } } $b = new M(); $c = &$b->N($b, 23); $c = 78; print_r($b);
Объясните на пальцах КАК ЭТО РАБОТАЕТ?
|