Вернуть пустой массив. Сравните сложность ваших двух вариантов
- Вернуть пустой массив и объединить его с полным ИЛИ
- Вернуть ноль, сохранить результат в переменной, проверить эту переменную и, затем, при необходимости объединить.
Когда вы пишете функцию, другие люди, кроме вас, будут использовать ее (это включает вас от 6 месяцев вперед, который не имеет представления о том, что вы делаете в данный момент). Если вы вернете значение null, кто-то, использующий вашу функцию, должен знать, что он может не вернуть массив, поэтому каждый раз, когда он использует вашу функцию, он должен обернуть свои переменные во множество проверок is_array
или is_set
. Это приводит к усложнению поддержки кода в будущем или к ошибкам, когда он работает, когда ваше приложение / система работает при возврате массива, но не при возврате нулевого значения. Если ваша функция всегда возвращает массив, люди могут безопасно передать его функциям, ожидающим массив. (именно поэтому некоторые сторонники строгого принуждения к типу ненавидят PHP. В таких языках, как Java, это не радует, потому что функции имеют возвращают определенный тип вещей)
Внимание к производительности заслуживает похвалы, но в целом встроенные функции манипулирования массивами довольно хорошо настроены, и они будут ограничивать лишь небольшой процент времени. При повседневном выполнении кода выигрыш в производительности от проверки значения переменных и объединения в массив с нулевым элементом будет незначительным.
Используйте более чистый API, сравнительный тест, а затем оптимизируйте конкретные случаи, когда вы начинаете видеть проблему с производительностью.