简体   繁体   English

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

[英]Changing a value of a variable inside foreach loop PHP

I have a problem. 我有个问题。 I should change the value of a variable inside a foreach loop in php, but the value holds predefined value all the time. 我应该在php中的foreach循环中更改变量的值,但该值始终保持预定义的值。 Here is the code: 这是代码:

$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;

And $returnValue holds the "" value. $returnValue保留""值。 I tried echoing $vinValue variable and it's not empty when the loop breaks. 我尝试回显$vinValue变量,并且在循环中断时它不是空的。

What am I doing wrong? 我究竟做错了什么?

try this instead : 试试这个代替:

$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;

i'd also suggest you replace the returnvalue/break with a direct return from there if nothing else is expected (this suggestion have nothing to do with your problem) 我还建议您在没有其他期望的情况下,用直接从那里返回的值替换returnvalue / break(此建议与您的问题无关)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM