CodeIgniter — & amp; оператор

Что именно делает следующая строка кода:

$config = &get_config();

Является & оператор проходит по ссылке? Также является get_config() помощник CodeIgniter? Я не мог гуглить объяснение.

0

Решение

Как сказал здесь Конрад Рудольф: https://stackoverflow.com/a/3957588/837765

& оператор говорит PHP не копировать массив при передаче его
функция. Вместо этого ссылка на массив передается в
функция, таким образом, функция изменяет исходный массив вместо
копия.

get_config() загружает основной config.php файл в массиве, и вы изменяете массив возвращаемых непосредственно с & оператор.

Это не помощник. Посмотрите здесь (чтобы найти get_config() функция):
http://www.8tiny.com/source/codeigniter/nav.html?_functions/index.html

3

Другие решения

Является & оператор проходит по ссылке?

Да, он передается по ссылке, так что вы можете изменить конфигурационный массив.

Также get_config () является помощником CodeIgniter?

Нет, это основной метод CodeIgniter, который загружает массив конфигурации, определенный в application / config / config.php.

Вы можете посмотреть на источник Вот.

2

& оператор является оператором ссылки PHP.

CodeIgniter — довольно старая платформа. В старых версиях PHP объекты передавались по значению. Это означало, что PHP был довольно расточительным, когда дело дошло до таких вещей, как распределение памяти, что делало вещи медленнее, чем они должны были быть. Чтобы PHP не выделял память каждый раз, когда вы хотели получить доступ к объекту, вместо этого вы должны использовать ссылки.

В более новых версиях PHP объекты и массивы автоматически передаются по ссылке. Когда дело доходит до массивов, новая память выделяется только при изменении массива.

99 процентов времени с использованием ссылок не является необходимым. PHP будет оптимизировать код для вас способом, который имеет смысл. Вы должны использовать ссылки только в том случае, если вы понимаете, что они делают, и у вас есть законная причина использовать их.

Вы можете найти get_config() функция по искать его в исходном коде на GitHub.

1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector