Size: a a a

2020 November 17

DP

Dorian Peregrim in phpGeeks
Kirill Nesmeyanov
таким образом мы и не клонируем объект (передача по значению) и не связываем две переменные одним адресом (передача по ссылке)
Так по ссылке или по указателю, я запутался в ваших показаниях?
источник

KN

Kirill Nesmeyanov in phpGeeks
а давай ещё раз прочитаешь сообщение?)
источник

KN

Kirill Nesmeyanov in phpGeeks
если хочешь, то я могу отредактировать его и написать оба "не" капслоком, что б заметно было
источник

DP

Dorian Peregrim in phpGeeks
Не хочу перечитывать то, что вы сами, видимо, плохо понимаете, хоть выделяй, хоть не выделяй капсом.
источник

KN

Kirill Nesmeyanov in phpGeeks
рукалицо
источник

KN

Kirill Nesmeyanov in phpGeeks
При разименовывании указателя мы получаем объект, хранящийся на этот момент в памяти. После изменения значения в этом адресе у нас объект не меняется, т.к. мы его получили в локальном скоупе функции.
источник

KN

Kirill Nesmeyanov in phpGeeks
На пальцах (PHP 5.x+), для тех, кто ничего не понял

Передача по указателю:
function foo($obj) { 
   $obj->value = 23;
   $obj = 42;
}

$obj = new Some();

foo($obj);

var_dump($obj); // object(Some) { $value = 23 }

Передача по значению:
function foo($obj) { 
   $obj->value = 23;
   $obj = 42;
}

$obj = new Some();

foo(clone $obj);

var_dump($obj); // object(Some)

Передача по ссылке:
function foo(&$obj) { 
   $obj->value = 23;
   $obj = 42;
}

$obj = new Some();

foo($obj);

var_dump($obj); // int(42)
источник

DP

Dorian Peregrim in phpGeeks
Не хочу вас огорчать, но первый пример это тоже передача по ссылке. Остановитесь, это уже не смешно.
источник

KN

Kirill Nesmeyanov in phpGeeks
источник

KN

Kirill Nesmeyanov in phpGeeks
во, кстати, первая же ссылка в гугле
источник

DP

Dorian Peregrim in phpGeeks
C++?
источник

KN

Kirill Nesmeyanov in phpGeeks
да пофигу
источник

DP

Dorian Peregrim in phpGeeks
Фундаментальна ошибка вашего спора в том, что вы путаете ссылки в пхп с ссылками и указателя в других языках. Это вообще абсолютно разные вещи и понятия.
источник

KN

Kirill Nesmeyanov in phpGeeks
в пыхе термины тоже подходят, т.к. передача по ссылке приводит zval таргета к типу ref
источник

DP

Dorian Peregrim in phpGeeks
Ладно, пусть будет так.
источник

KN

Kirill Nesmeyanov in phpGeeks
а передача объекта просто передаёт его в стек, откуда он уже вытаскивается
источник

FL

First Last in phpGeeks
Kirill Nesmeyanov
При разименовывании указателя мы получаем объект, хранящийся на этот момент в памяти. После изменения значения в этом адресе у нас объект не меняется, т.к. мы его получили в локальном скоупе функции.
Давай будем честны
Для пхпшников если что-то передается в сигнатуру функции, а в ее теле изменяется и изменения происходят у клиентов - это передача по ссылке
источник

FL

First Last in phpGeeks
То, что в "нормальных" языках это требует чуть больше кода и называется по другому - это вообще не аргумент
источник

KN

Kirill Nesmeyanov in phpGeeks
у каких клиентов?
источник

KN

Kirill Nesmeyanov in phpGeeks
если ты про тех, кто дёргает то нет, ничего у них не изменяется
источник