За последние 24 часа нас посетили 26198 программистов и 1814 роботов. Сейчас ищут 1022 программиста ...

Вложенные функции

Тема в разделе "PHP для новичков", создана пользователем kilogram, 31 мар 2012.

  1. kilogram

    kilogram Активный пользователь

    С нами с:
    19 мар 2012
    Сообщения:
    116
    Симпатии:
    0
    Читаю вложенные функции, там такой пример,странно, не работает
    Код (Text):
    1.  
    2. <html><body>
    3. <?php
    4. function father($a){
    5.     echo $a, "<br>";
    6. function child($b){
    7.     echo $b+1,"<br>";
    8.     return $b * $b;
    9. }
    10. return $a * $a * $child($a);
    11. }
    12.  
    13. father(10);
    14. child(30);
    15. ?>
    16. </body></html>
     
  2. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
     
  3. kilogram

    kilogram Активный пользователь

    С нами с:
    19 мар 2012
    Сообщения:
    116
    Симпатии:
    0
    Стопудово, название функции с доллара наваял.

    Добавлено спустя 24 минуты 10 секунд:
    Откуда вывелось 11, если в child попадает вообще 30, должно 31 быть.
     
  4. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Код (PHP):
    1. return $a * $a * $child($a); 
    на
    Код (PHP):
    1. return $a * $a * child($a); 
    Разве не заметно!??
     
  5. kilogram

    kilogram Активный пользователь

    С нами с:
    19 мар 2012
    Сообщения:
    116
    Симпатии:
    0
    Да, заметил я эту ошибку, спс. Откуда вывелось 11, если в child попадает вообще 30, должно 31 быть.

    Добавлено спустя 10 минут 15 секунд:
    То есть передав аргумент 10 функции father, объявив нвутри этой функции father функцию child, тоже с одним параметром, я получается ему передаю то же значение 10, которое увеличивается на 1 после этой строки echo $b+1,"<br>"; и стает 11?
    Ещё, попробовал убрать вот эту строку return $b * $b; и код со всем не изменился, а выдает те же значения что и с этой строкой, что и без неё? Почему?

    Насчет этой строки:
    return $a * $a * child($a);
    здесь получается 10*10*30 что ли? Как считается?