Почему в данном случае выводится 2 пустых массива? Ведь в коде функции сначала массиву присваивается пустой массив, а потом добавляется значение.
entity
- это переменная внутри функции и существует она до окончания работы функции. Когда, функция вызывается, создается переменная
entity
и она содержит переданной значение (массив), далее вы просто перезаписываете эту функцию новым массивом и никаких изменений с изначально переданным массивом не происходит. Если убрать перезапись переменной новым массивом - то будет доступен переданный массив и его изменение. Проще всего представить, что переменная - это как коробка, в которую можно что-то положить. Если туда положить что-то новое - старое оттуда удалится.