Почему этот пример не работает:
$string='1000000000000';
while($string=preg_replace('/(\d)((\d\d\d)+\b)/','$1,$2',$string)){}
echo $string."<br>";
Предполагается, что цикл повторяется до тех пор, пока не будет соответствовать.
Пока не сработает регулярное выражение. Но нет, цикл никогда не заканчивается.
эта альтернатива работает:
$string='10000000000000';
while(preg_match("/(\d)((\d\d\d)+\b)/",$string)){
$string=preg_replace("/(\d)((\d\d\d)+\b)/","$1,$2",$string);
}
echo $string."<br>";
Мой вопрос:
функция preg_replace возвращает некоторое значение ИСТИНА / ЛОЖЬ, когда регулярное выражение по-прежнему не может соответствовать?
Если вернуть False, почему в первом примере цикл никогда не останавливается.
Я пытался с:
while((regex)!==FALSE)
while((regex)==TRUE)
и это не работает.
Меня не волнует, как ставить запятые,
я хочу знать о функции preg_replace
Если кто-то может мне помочь.
было бы замечательно.
спасибо