PHP在foreach(Laravel)中使用if statment设置新值

PHP在foreach(Laravel)中使用if statment设置新值,php,laravel,Php,Laravel,如果可能的话,我正在使用laravel(我在控制器中) 所以我有这个代码 如果我的$pool->status为etc OFFLINE,则会将其设置为ONLINE。 为什么会这样 foreach($pools as $pool){ if ($pool->status = 'ONLINE') { $pool->cstatus = ' <i class="zmdi zmdi-shield-check zmdi-hc-lg

如果可能的话,我正在使用laravel(我在控制器中) 所以我有这个代码

如果我的$pool->status为etc OFFLINE,则会将其设置为ONLINE。 为什么会这样

foreach($pools as $pool){
        if ($pool->status = 'ONLINE') {
            $pool->cstatus = '
            <i class="zmdi zmdi-shield-check zmdi-hc-lg text-success" data-toggle="tooltip" data-placement="right" title="" data-original-title="OK"></i>
            ';
        }
        else {
            $pool->cstatus = '
            <i class="zmdi zmdi-help zmdi-hc-lg text-muted" data-placement="right" title="" data-original-title="Status unknown."></i>
            ';
        }
    }
foreach($pool作为$pool){
如果($pool->status='ONLINE'){
$pool->cstatus=
';
}
否则{
$pool->cstatus=
';
}
}
在“=”和“=”运算符中存在差异isassing运算符,而==iscomparison运算符

改变

  if ($pool->status = 'ONLINE') {


在if语句中使用赋值运算符,而不是条件等于运算符。使用
=
=

foreach($pools as $pool){
        if ($pool->status == 'ONLINE') {
            $pool->cstatus = '
            <i class="zmdi zmdi-shield-check zmdi-hc-lg text-success" data-toggle="tooltip" data-placement="right" title="" data-original-title="OK"></i>
            ';
        }
        else {
            $pool->cstatus = '
            <i class="zmdi zmdi-help zmdi-hc-lg text-muted" data-placement="right" title="" data-original-title="Status unknown."></i>
            ';
        }
    }
foreach($pool作为$pool){
如果($pool->status=='ONLINE'){
$pool->cstatus=
';
}
否则{
$pool->cstatus=
';
}
}

您使用的是assignemnt运算符
=
,而不是

因此:

不是:

你可以选择尤达条件:

if ('ONLINE' == $pool->status) {}
因为如果你弄错了运算符,那会出错


这些错误很难调试,特别是对于没有经验的程序员。

谢谢,链接也很好!
if ($pool->status == 'ONLINE') {}
if ($pool->status = 'ONLINE') {}
if ('ONLINE' == $pool->status) {}