str_replace里面的while语句

问题描述 投票:0回答:1

为什么我在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,当它到达客户端时,它将具有正确的宠物名称。

php while-loop str-replace
1个回答
4
投票

这是因为$comments=str_replace("+petname","$petname",$comments); echo $comments."<br/>"; 在你第一次循环之后被重新定义,所以如果$comments在开头是$comments,在你替换它之后,+petname将保持行中petname的值,然后它再次循环,其值为$comments是宠物名称,要解决这个问题,只需更改变量的名称即可

$comments
© www.soinside.com 2019 - 2024. All rights reserved.