передавать массивы, классы в пхп: по ссылке или значению? в перле это по ссылке идет, но тут по-другому может быть. спасибо
про объекты тут https://5minphp.ru/episode83/ .. а с массивами, зависит от того что необходимо с ним сделать .. если просто перебрать то без ссылки, а если поменять то через &
так а массивы переданные по значению тоже не копируются?
по дефолту циклы например работают именно с копией массива
в доках не совсем подробно описан этот вопрос. Думаю нужно читать internals
func($arr) { return $arr; } $var = func(array('key' => 'val')); сколько раз здесь копируется массив?
Насколько я помню, в PHP используется механизм Copy-on-write, что значит, что переданный по значению массив по умолчанию передается по ссылке, но если функция в которую его передали меняет хоть один элемент, то перед этим он будет скопирован.
Как раз про copy-on-write, что тут ещё необходимо раскрыть не знаю.
ответить сколько раз копируется массив в коде который я написал
1. Где сам код? 2. Нужно смотреть сгенерированный байткод, потому что возможные оптимизации предсказывать нереально. И на разных версиях может быть разный результат.
вы же только что писали
Обсуждают сегодня