Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Рекурсивная функция. Ошибка реализации?!
Fatal error: Cannot redeclare countchars() (previously declared in Z:\home\localhost\www\task\Class.php:13) in Z:\home\localhost\www\task\Class.php on line 13
OrmaJever
Отправлено: 22 Января, 2012 - 16:58:56
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
почему эта функци определяется внутри метода? Вынесите её отдельным методом и обращайтесь через $this->countchars()
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Scorp24
Отправлено: 22 Января, 2012 - 17:04:13
Новичок
Покинул форум
Сообщений всего: 9
Дата рег-ции: Янв. 2012
Помог: 0 раз(а)
OrmaJever пишет:
почему эта функци определяется внутри метода? Вынесите её отдельным методом и обращайтесь через $this->countchars()
Делал и так, но появляется другая ошибка:
Warning: Invalid argument supplied for foreach() in Z:\home\localhost\www\task\Class.php on line 89
// функция заносит фрагменты строк в массив, для их дальнейшей проверки
public function subToArr($chars)
{
while($this->countChars($chars)==true){
$chars=$substr;
$arr_substr[]=$substr;
}
foreach($arr_substras$val){// line 89
$this->subToArr($val);
}
}
}
OrmaJever
Отправлено: 22 Января, 2012 - 17:13:22
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Так, я вгледелся в код и понял что это беда.
1) Если $this->countChars($chars) вернёт true то цыкл будет бесконечный, скорее всего тут нужно условие
2) Масив $arr_substr, нужно внчале метода обьявить ($arr_substr = array()), это нужно для того что-бы небыло notice, и для цыкла foreach
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Scorp24
Отправлено: 22 Января, 2012 - 17:30:54
Новичок
Покинул форум
Сообщений всего: 9
Дата рег-ции: Янв. 2012
Помог: 0 раз(а)
OrmaJever пишет:
Так, я вгледелся в код и понял что это беда.
1) Если $this->countChars($chars) вернёт true то цыкл будет бесконечный, скорее всего тут нужно условие
2) Масив $arr_substr, нужно внчале метода обьявить ($arr_substr = array()), это нужно для того что-бы небыло notice, и для цыкла foreach
Искренне благодарен!
Разобрался, ответ в пункте 2, необходимо было массив объявить в начале метода.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.