str_replace里面的while语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了str_replace里面的while语句相关的知识,希望对你有一定的参考价值。
为什么我在while循环中的str_replace没有按预期运行?
我的代码:
$comments=$_POST['comments'];
$result = mysql_query("SELECT * FROM cust LEFT JOIN contact AS contact ON cust.cid=contact.contact_id WHERE cid='$aDoor[$i]'");
while ($row = mysql_fetch_array($result)) {
$petname=$row['petname'];
echo "Petname ".$petname."<br/>";
$comments=str_replace("+petname","$petname",$comments);
echo $comments."<br/>";
}
当我执行这段代码时,最奇怪的事情就发生了。行:qazxsw poi按预期工作,并在cid数据库中回显正确的petname。但是这条线:
echo "Petname ".$petname."<br/>";
将始终显示FIRST宠物的名称。当我在comments变量中添加正确的$ petname时,怎么会这样呢?
附:我正在做str_replace的原因是,当他向客户发送电子邮件时,使用它的人可以输入+ pet,当它到达客户端时,它将具有正确的宠物名称。
答案
这是因为$comments=str_replace("+petname","$petname",$comments);
echo $comments."<br/>";
在你第一次循环之后被重新定义,所以如果$comments
在开头是$comments
,在你替换它之后,+petname
将保持行中petname的值,然后它再次循环,其值为$comments
是宠物名称,要解决这个问题,只需更改变量的名称即可
$comments
以上是关于str_replace里面的while语句的主要内容,如果未能解决你的问题,请参考以下文章