在Smarty中的OR条件

时间:2014-04-23 05:55:52

标签: php smarty

您好我想在聪明中使用OR Condition请帮帮我

{if $productgroup.gid neq '69' or
    $productgroup.gid neq '68'  or
    $productgroup.gid neq '27' or
    $productgroup.gid neq '31' or
    $productgroup.gid neq '70' or
    $productgroup.gid neq '71'}

    <select name="name" id="name" onchange="plan()">
        <option value="1">Car</option>
    </select>

{/if}

3 个答案:

答案 0 :(得分:0)

if条件期间,数字之间不应有引号:

{if $productgroup.gid neq 69 or
    $productgroup.gid neq 68  or
    $productgroup.gid neq 27 or
    $productgroup.gid neq 31 or
    $productgroup.gid neq 70 or
    $productgroup.gid neq 71}

    <select name="name" id="name" onchange="plan()">
        <option value="1">Car</option>
    </select>

{/if}

答案 1 :(得分:0)

您可以使用更短且更易于维护的in_array,而不是使用OR:

{ if !in_array($productgroup.gid, array(69,68,27,31,70,71)) }
    <select name="name" id="name" onchange="plan()">
        <option value="1">Car</option>
    </select>
{/if}

答案 2 :(得分:-1)

您的代码将始终为TRUE,因为数字始终不等于69或68。 如果你试图检查“gid”是不是27,31,68,69,70或71,那么这需要以不同的方式发生(除了关于字符串和数字的其他答案):

{if ! ( $productgroup.gid eq 69 or
        $productgroup.gid eq 68 or
        $productgroup.gid eq 27 or
        $productgroup.gid eq 31 or
        $productgroup.gid eq 70 or
        $productgroup.gid eq 71 ) }

    <select name="name" id="name" onchange="plan()">
        <option value="1">Car</option>
    </select>

{/if}