Intereting Posts
Laravel 5.1: сочетания дескрипторов с одинаковыми именами столбцов Проблема создания лучшего случайного алгоритма – ежедневный спред WAMPServer Неустранимая ошибка: класс «Монго» не найден Как включить короткие коды в шаблон электронной почты php Возможно ли, используя PHPUnit mock objects, ожидать вызова магического метода __call ()? Как настроить SSL с помощью Laravel 5 за балансировщиком нагрузки (ssl_termination)? Как я могу просмотреть / открыть документ Word в своем браузере, используя PHP или HTML Могу ли я переписать мои URL-адреса, как это, и это хорошая идея? google-api-php-client – Диск – Вставка файла – Создание текстового файла – Содержимое не добавляется Как включить расширение ядра PHP в Linux? Анонимная функция PHP, назначенная для свойства класса в конструкторе, всегда равна нулю? Библиотека HTML-форм для PHP 5 Зачем использовать фреймворк с PHP? Как добавить название записи в описание контента? Ссылки PHPStorm и модуля

compact () против объявления ручного массива на php

Обычно я использую функцию compact() для php для массива зданий из переменных. Кроме того, я могу создать этот массив вручную. Есть ли какие-либо плюсы или минусы этих обычаев? Я использую примеры обеих этих объявлений в следующем сегменте:

Компактное использование

  <?php $name = "John"; $surname = "Doe"; compact('name','surname'); ?> 

Вывод:

 ['name'=>'John','surname'=>'Doe'] 

Ручная идентификация массива

 <?php $name = "John"; $surname = "Doe"; $data = array("name"=>$name,"surname"=>$surname); ?> 

Вывод:

 ['name'=>'John','surname'=>'Doe'] 

Я думаю, что это скорее вопрос предпочтения.

Пользы

Если у меня есть куча локальных переменных, объявленных, и я хочу, чтобы мои ключи массива были названы одинаково, compact очень полезна.

Я не считаю, что так часто бывает. Обычно я определяю более сложный массив:

 $array = [ 'foo' => $something->foo(), 'bar' => $bar, 'baz' => A_CONSTANT ]; 

Чтобы использовать compact диск, вам придется сначала определить свои переменные $foo $bar и $baz , что кажется глупым.

Мне нравится compact , я просто не считаю ее полезной большую часть времени.

Представление

Хорошо, я должен был сделать это. Вот очень простое нехатериальное сравнение производительности:

https://3v4l.org/WTrOJ

Короче говоря, использование compact на порядок медленнее.

И все же вы должны использовать его 100 000 (в этом примере), чтобы иметь значение крошечной доли секунды.

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