Работа return в рекурсивной функции php

208
30 сентября 2017, 23:20

Доброго времени суток. Есть код. Не важна его практическая ценность, интересует как это работает.

<?php
    $arr = array(
            0=>'Aaa',
            1=>'Bbb',
            2=>'Ccc'
        );
    function getArr($arr){
        static $exit_arr = array();
        if((is_array($arr)) && (!empty($arr))){
            for($i=0; $i<count($arr); $i++){
                $exit_arr[] = $arr[$i];
                unset($arr[count($arr)-1]);
                getArr($arr);
            }
        }
        else{
            return $exit_arr;
        }
    }
    print_r(getArr($arr));

Если оставить так, то return ничего не возвращает. Если же убрать блок else и оставить return вне его, то return возвращает.

Почему так происходит? Заранее благодарю за ответ.

READ ALSO
Не получается добавить custom order item data woocommerce

Не получается добавить custom order item data woocommerce

На странице продукта(отеля) есть пять кнопок ADD TO CART, все они кастомные и на первой из них висит шорткод:

225
Модуль PHP7 не подключается к Apache

Модуль PHP7 не подключается к Apache

В файле httpdconf прописываю

197
Вывод текста из файла

Вывод текста из файла

Есть файл texttxt

183