function factorial($n){ if ($n == 0) return 1; return $n * factorial($n-1); /*считаем factorial(3), php возвращает 3 * factorial(2) далее идет на верх к функции factorial($n) и считает уже factorial(2),теперь уже возвращает 3 * 2 * factorial(1) и тд. Но непонятно, что будет при factorial(0). Он же поидее просто вернет 1 при $n=0 и что тогда произойдет со всеми остальными вычислениями?*/ } $result = factorial(5); echo "5! = " . $result;
function myCount($item) { if(is_null($item)) return 0; if(!is_array($item)) return 1; $cnt=0; foreach($item as $v){
if($mode==1 and is_array($v)) $cnt += myCount($v, 1); $cnt++; /* здесь все понятно пока функция считает значения простого массива, но когда появилась рекурсия для того, чтобы функция считала значения и многоуровнего массива(эти 3 строки) я перестал понимать что делает php. Можете написать, что он делает начиная с цикла foreaach?*/
} return $cnt; }
Возникло непонимание с рекурсивной функцией. Первый код - функция факториала, второй код воссоздание функции count. Свои мысли и вопросы написал в комментариях к коду. Могу заблуждаться в порядке действий php, так что если что поправляйте. Заранее спасибо!
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Портфолио https://www.behance.net/d4d4186e
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Портфолио https://www.behance.net/d4d4186e
Question
4ak
Возникло непонимание с рекурсивной функцией. Первый код - функция факториала, второй код воссоздание функции count. Свои мысли и вопросы написал в комментариях к коду. Могу заблуждаться в порядке действий php, так что если что поправляйте. Заранее спасибо!
Link to comment
Share on other sites
17 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.