【问题标题】:If statement inside a foreach loopforeach 循环中的 if 语句
【发布时间】:2017-02-13 21:50:12
【问题描述】:
@foreach ($image as $image)

        <div class="col-md-4">

        @if ($image->current_step == 'step'.$loop->iteration AND $image->isCompleted == '1')
            <div class="panel panel-success">

        @elseif ($image->current_step == 'step'.$loop->first OR $image->current_step == 'step'.$loop->index AND $image->isCompleted == '1')
            <div class="panel panel-default">

        @elseif ($image->current_step == 'step'.$loop->iteration AND $image->isCompleted == '0')
            <div class="panel panel-danger">


        @endif
@endforeach

我创建了一个循环来生成多个面板,但是我希望根据正确的 if 语句对面板进行不同的样式设置。

每当第二个 if 语句碰到该部分以询问是否满足前面的步骤条件时,它似乎就会卡在第二个 if 语句上。

如果有人能指出我应该走的大致方向或其他方式。

谢谢

【问题讨论】:

  • 你能用ANDOR代替&amp;&amp;||吗?
  • @Luke - 是的,你可以
  • @Gravy - 你能给我找一些相关的文件吗?我知道您可以使用标准逻辑运算符,但找不到任何关于英语替代方案的提及。
  • @Luke 你为什么要使用 AND 和 OR 而不是使用 && 和 ||
  • @Gayan 我不会。但我怀疑的 OP 可能是他/她问题的原因。

标签: laravel laravel-5


【解决方案1】:

你的第二个如果:

    $a = false;
    $b = true;
    $c = false;

    if ($a or $b and $c) {
        dd('a or b and c');
    }

    dd(false);

// 以上 sn -p 会输出 false。这是故意的吗?

你可以写一个真值表来帮助你

A  B  C  |  A  |  B  &  C
-------------------------

0  0  0  |  0  0  0  0  0  
0  0  1  |  0  0  0  0  1  
0  1  0  |  0  0  1  0  0  
0  1  1  |  0  1  1  1  1  
1  0  0  |  1  1  0  0  0  
1  0  1  |  1  1  0  0  1  
1  1  0  |  1  1  1  0  0  
1  1  1  |  1  1  1  1  1  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多