在foreach循环PHP中更改变量的值

时间:2013-09-19 15:08:47

标签: php variables loops foreach

我有问题。我应该在php中更改foreach循环中变量的值,但该值始终保持预定义值。这是代码:

$returnValue = "";
foreach($vinArray as $vinValue){
    $sql_vin_check = "SELECT * FROM users WHERE vin LIKE '%:vin%'";
    $stmtvincheck  = $pdo->prepare($sql_vin_check);
    $stmtvincheck->bindParam(':vin', $vinValue);
    $stmtvincheck->execute();
    $vinCheck = $stmtvincheck->rowCount();
    $stmtvincheck->closeCursor();
    echo $vinValue;
    if($vinCheck != 0){
        $returnValue = $vinValue; break;
    }
}
return $returnValue;

$returnValue保留""值。我尝试回显$vinValue变量,当循环中断时它不为空。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

试试这个:

$returnValue = "";
foreach($vinArray as $k=>$vinValue){
    $sql_vin_check = "SELECT count(*) c FROM users WHERE vin LIKE '%:vin%'";
    $stmtvincheck  = $pdo->prepare($sql_vin_check);
    $stmtvincheck->bindParam(':vin', $vinValue);
    $stmtvincheck->execute();
    $vinCheck = $stmtvincheck->fetch();
    $stmtvincheck->closeCursor();
    if($vinCheck['c'] > 0){
        $returnValue = $vinValue; 
        break;
    }
}
return $returnValue;

如果没有其他预期的话(我的建议与你的问题无关),我建议你用那里的直接返回来替换returnvalue / break。