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.
Здравствуйте, подскажите какой тег использовать для увеличения значения, пример на картинке.
Вроде, про такой тег я слышала. Если есть тег прогресс бар, значит и такое должно быть.
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.