массив с пустыми значениями против чистого массива - PullRequest
0 голосов
/ 04 августа 2020

Я не могу найти ни одной статьи об этом. Наверное, очень базовый c вопрос. Поэтому в основном из любопытства я хотел бы знать, лучше ли создание массива без пустых значений для производительности / памяти, чем с пустыми / нулевыми значениями.

[0] => array('color' => 'red')
 etc

[0] => array('type' => NULL, 'color' => 'red')
 etc

1 Ответ

1 голос
/ 04 августа 2020

С точки зрения производительности, я бы сказал, что влияние на потребление памяти может быть минимальным, но я также предполагаю, что этим можно пренебречь.

С точки зрения программирования, я бы сказал: « зависит от". Как правило, я бы сказал: «Не создавайте пустые поля, но когда они уже есть, не удаляйте их принудительно».

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: ТАК не любит "мнение посты на основе ". Пожалуйста, отнеситесь к этому с необходимой долей скептицизма, поскольку это отражает только мое мнение и не относится ко всем проблемам и ситуациям.

На мой взгляд, есть два случая:

Первый: Вы используете массив для дальнейшей обработки.

Если вы знаете, что вам нужны атрибуты для дальнейшей обработки, может быть (в зависимости от типа доступа) иметь пустой ценности. В этом случае можно хотя бы быть уверенным, что ключ массива присутствует. Это на самом деле не должно мешать вам создавать классы / объекты, которые, скорее всего, являются гораздо лучшим решением для этого, чем массивы. Это в основном будет применяться к данным, полученным напрямую из БД (без ORM-сопоставителей) или какого-либо рода частично обработанные данные.

Второй: Вы передаете информацию.

Когда вы передаете информацию по сети или где-то сериализуете, каждый байт имеет значение. В этом случае было бы неплохо очистить массив, чтобы вы могли сохранить эти байты. В этом случае также может быть исключение (как и интерфейсы REST, они являются «контрактами», и содержимое / структура ресурсов не должны изменяться только из-за наличия нулевых значений).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...