我在Laravel 5.4 Blade视图中具有以下代码:

@php($strVal = $character->Strength)

                        @php($strMod = 0)

                        <?php
                            if ($strVal == 10 || 11) {
                                $strMod = 0;
                            } elseif ($strVal == 12 || 13) {
                                $strMod = 1;
                            } elseif ($strVal == 14) {
                                $strMod = 2;
                            } else {
                                $strMod = 2;
                            }


                        ?>


它从MySQL表中获取数据。
$ strVal是表中的一个int。该代码创建了一个名为$ strMod的var,并通过了许多if / elseif语句来查看其含义。

它在网页上显示如下:

<div class="huge charMod">+{{$strMod}}</div>


我的问题是,无论strVar等于什么,它都显示为“ +0”。 strVar工作正常,我可以从数据库中提取它并通过{{$ strVal}}显示它,但是strMod拒绝采用非0的值。

最佳答案

您需要将if check更改为

if ($strVal == 10 || $strVal == 11) {
    $strMod = 0;
} elseif ($strVal == 12 || $strVal == 13) {
    $strMod = 1;
} elseif ($strVal == 14) {
    $strMod = 2;
} else {
    $strMod = 2;
}


if ($strVal == 10 || 11)将始终返回true。如果要检查两个值,则需要再次使用变量== value来指定,如上例所示。

10-06 04:48