У меня есть функция, как:PHP рекурсивный переменная не изменится
myfunction($i,$condition = false, $level = 0) {
do {
if (... some conditions here) { myfunction($i, true, ++$level) }
else { do something here ... }
while (...meet ending condition)
}
Я не понимаю, почему $ условие поворота true
, когда я называю myfunction()
рекурсивно и вернуться к false
при переборе в первом уровне и $level
не переключится на 0
после выхода из рекурсивного режима.
$condition = false, false, true, false, false, true, true, true ...
$level = 0,0,1,1,1,2,2,2 ... it shoul also be like = 0,0,1,0,0,1,2,2,2,0 ...
и так далее ?
Спасибо
P.S: Это то же самое с массивами? Я объявил массив в наборе функций нулю, и при выходе из рекурсивного режима это не пустой больше:
myfunction($i,$condition = false, $level = 0, $array = null) {
do {
if($condition) { $array = null } <--------- I HAVE TO ADD THIS LINE TO MAKE IT NULL WHY ?
if (... some conditions here) {$array = Array(someblabla); myfunction($i, true, ++$level, $array) }
else { do something here ... }
while (...meet ending condition)
}
Спасибо всем ... $ level + 1 сделал трюк, как вы сказали. Но я не знаю, почему и где мнится в ссылках на php. – pufos
http://www.php.net/manual/en/language.operators.increment.php – JJJ
Может ли кто-нибудь ответить на вопрос P.S? Спасибо – pufos