Самый оптимизированный способ создания ассоциативного массива

Каков наилучший (самый быстрый, самый читаемый и т. Д.) Способ создания ассоциативного массива?

В прошлый раз я видел, что мой коллега создал небольшой массив ассоциаций:

$array['is_enabled'] = false;

В обзоре кода я передаю свое мнение, что более читабельная форма:

$array = [
'is_enabled' => false
];

Но «читабельность» — вещь субъективная, поэтому это не лучший аргумент.

0

Решение

Первый подход 3v4l ссылка:

$subscription['is_enabled'] = false;

Вы можете увидеть в ссылке, которая сгенерировала 3 операции

number of ops:  3
compiled vars:  !0 = $subscription
line     #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
3     0  E >   ASSIGN_DIM                                               !0, 'is_active'
1        OP_DATA
2      > RETURN                                                   1

Avg. использование памяти 25,15 МиБ и работает в 0.013s (пользовательское время PHP 7.1.x).

Второй подход 3v4l ссылка:

$subscription = ['is_active' => false];

Сейчас это всего 2 операции. Назначить и вернуть.

number of ops:  2
compiled vars:  !0 = $subscription
line     #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
3     0  E >   ASSIGN                                                   !0,
1      > RETURN                                                   1

Avg. использование памяти 24,40 МиБ и работает в 0.010s (пользовательское время PHP 7.1.x).

Я не уверен что такое операция op_data это отсутствует во втором подходе. Но все равно это на одну операцию меньше, и в результате мы получаем почти на 0,8 МБ меньше памяти и ~ 23% быстрее времени выполнения.


Так выглядит $array= ['key' => false];

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

1

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

Других решений пока нет …

По вопросам рекламы [email protected]