$z = array_merge(
isset($x) ? $x : array(),
isset($y) ? $y : array()
);
Это вернет пустой массив, если $x
и $y
не установлены.Если установлен только один, он вернет этот массив.Если оба параметра установлены, он вернет результат выполнения array_merge()
для массивов.
Это не совсем поведение вашего кода выше, но я считаю, что это поведение, которое вы намеревались.(Я полагаю, в вашем коде, что $z
не будет массивом, если не заданы и $x
, и $y
.)
Кстати, этот код предполагает, что если $x
и$y
установлены, что они являются массивами.Если это не так, вы должны либо запустить на них is_array()
, чтобы подтвердить, что они являются массивами, либо использовать жонглирование типа , чтобы убедиться, что они являются массивами при запуске array_merge()
.