besogonskiy
@besogonskiy
работаю php laravel разработчиком.

Нужно ли стремиться обнулять переменные и по возможности не создавать их копий в проектах php?

Начав работать с языком Go начал придавать значение экономии памяти - не создавать лишних переменных.
В php не особо замечал, что это практикуется.

Например, у нас есть какой-то массив большой вложенности, а нам нужен на данный момент только один элемент по одному из ключей - нужно использовать длинный путь к этому элементы или для простоты можно создать отдельную переменную, например,
$lessons = $school['lessons'];

foreach ($lessons as $lesson) { ...}

или желательно таки писать foreach ($school['lessons'] as $lesson) { ... }
Ведь когда мы создаем переменную, то в нее копируется значение другой переменной и мы работаем с копией, а это дорогая операция в плане временных затрат и затрат памяти.

Ну и по выходу из цикла делать $lessons = null или unset($school['lessons']

или в php принято не заморачиваться?
  • Вопрос задан
  • 187 просмотров
Пригласить эксперта
Ответы на вопрос 2
Melkij
@Melkij
PostgreSQL DBA
Ведь когда мы создаем переменную, то в нее копируется значение другой переменной и мы работаем с копией

Неа. См. zval

Начав работать с языком Go начал придавать значение экономии памяти - не создавать лишних переменных.

Разве компилятор go недостаточно умён для элементарных оптимизаций кода?
Вы проверяли байткод, ваша оптимизация действительно имеет место или это самообман?
Ответ написан
Adamos
@Adamos
В РНР не было принято над этим заморачиваться раньше, а сейчас и вовсе потеряло смысл.
Потому что уж такие детские оптимизации, как копирование массивов и объектов только при изменении, давно реализованы и отлажены.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы