Цитата (xlebosol @ 25.12.2012 - 00:15) |
Так правильно, а что сделано, чтобы там ничего не было. $str=(string)$str; замени на $str = substr($str,0,-1); и проверь данные var_dump(); |
$str=(string)$str;это я привожу int, float к string.
$str = substr($str,0,-1);? Там же будет то же самое.
Цитата (Invis1ble @ 25.12.2012 - 00:23) |
По теме: не советую юзать рекурсию, т.к. работа функции будет зависить от длины строки и, соответсвенно, размера стэка вызовов |
Цитата (xlebosol @ 25.12.2012 - 00:26) |
<?php $str = 'dddd5555555555555'; function myStrlen($str) { if($str===true) return 1; if(is_array($str)) return 0; //Здесь бы какую-нибудь ошибку инициализировать типа Warning ... как сделать? $str = substr($str,0,-1); static $cnt=0; $cnt++; if ($str != "") { //Проверка на конец строки. Может неправильное условие? myStrlen($str); } return $cnt; } echo myStrlen($str) ?> |
Цитата (xlebosol @ 25.12.2012 - 00:45) |
<?php $str = 'Hello Word'; function myStrlen($str){ if($str===true) return 1; if(is_array($str)) return 0; //Здесь бы какую-нибудь ошибку инициализировать типа Warning ... как сделать? $str=(string)$str; static $cnt=0; if ($str{$cnt} != "") { //Проверка на конец строки. Может неправильное условие? $cnt++; myStrlen($str); } return $cnt; } echo myStrlen($str) ?> У тебя (else) последнего условия не исполняется. |
Цитата (xlebosol @ 25.12.2012 - 00:49) |
Попробуй |