За последние 24 часа нас посетили 47213 программистов и 1806 роботов. Сейчас ищут 876 программистов ...

Что значит $fib = function($i) use (&$fib)

Тема в разделе "PHP для новичков", создана пользователем php_user, 23 фев 2015.

  1. php_user

    php_user Новичок

    С нами с:
    19 апр 2014
    Сообщения:
    91
    Симпатии:
    0
    Ниже функция для вычисления элемента в последовательности фибоначи. Что значит $fib = function($i) use (&$fib)?

    Код (PHP):
    1. function fibonacci($n) {
    2. $fib = function($i) use (&$fib) {
    3. if ($i <= 1 ) {
    4. return 0;
    5. } elseif ($i == 2) {
    6. return 1;
    7. } else {
    8. return $fib($i - 1) + $fib($i - 2);
    9. }
    10. };
    11. print $fib($n);
    12. }
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    при вызове функции фибоначчи создается анонимная функция помещенная в переменную фиб и использующая значение переменной фиб внутри себя. поскольку в значении фиб у нас указатель на функцию - вызывается функция. по завершению вычисления фиб-а - печатается результат и завершается функция фибоначчи. при этом умирает локальная переменная фиб и как следствие анонимная функция в ней.

    извращенцы.
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
  4. php_user

    php_user Новичок

    С нами с:
    19 апр 2014
    Сообщения:
    91
    Симпатии:
    0