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

242
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, все они кастомные и на первой из них висит шорткод:

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

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

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

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

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

Есть файл texttxt

226