Вы забыли вернуть
function addOne($store, $element){
$store[]=$element;
return $store;
}
$store = addOne($store, $samsung);
Вы также можете перейти по ссылке, если хотите (что больше соответствует вашему коду):
function addOne(&$store, $element){
$store[]=$element;
}
addOne($store, $samsung);
Обратите внимание на&
.Вместо копирования входных данных это больше похоже на указатель на исходную переменную, поэтому вы можете обновить его напрямую.Эфирный путь здесь хорош, это действительно вопрос выбора разработчиков.Например, это может быть очень легко смешать два:
//Don't do this
function addOne(&$store, $element){ //returns null
$store[]=$element;
}
$store = addOne($store, $samsung); //sets $store to null
Что вы, вероятно, не хотите делать, поэтому я вижу аргумент для обоих способов.Если у вас нет супер большого массива, это, вероятно, не имеет большого значения.Очень легко забыть, что случайная функция передается по ссылке.
Так что используйте любой метод, который имеет для вас больше смысла.
PS - я отказываюсь использовать array_push
, это уродливо, и яне нравится :)Выполнение $store[]=$element;
аналогично array_push($store,$element)
, за исключением того, что позволяет избежать ненужного вызова функции.
Приветствия.