如何检查双重条件聪明

时间:2016-09-19 08:02:59

标签: php if-statement smarty

我想检查变量$ nvTb是1还是2。

我这样做但没有工作

{if (($nvTb eq 1) or ($nvTb eq 2)) }

实现类似的目标

<a role="tab" {if (($nvTb eq 1) or ($nvTb eq 2)) } id="fichaScroll" {else} data-toggle="tab" {/if}> 

当我运行代码只有一个如果检查

{if $nvTb eq 1} 

然后工作

7 个答案:

答案 0 :(得分:2)

我猜测TPL原本适用于smarty模板,根据语法判断,您可以从此处获取完整文档:http://www.smarty.net/docs/en/

eq==的别名,您可以在此处看到:http://www.smarty.net/docs/en/language.function.if.tpl

就您的问题而言,请尝试以下方法:

<a role="tab" {if $nvTb === 1 || $nvTb === 2} id="fichaScroll" {else} data-toggle="tab" {/if}>

eq==的别名,这意味着它会将1视为真,这意味着任何真值的任何内容也会通过检查。我猜这可能是你的问题。

如果不是问题,请尝试以下方法:

{php}
echo '<a role="tab" ((if $nvTb === 1 || $nvTb === 2) ? id="fichaScroll" 
                                                     : data-toggle="tab")>';
{/php}

无论如何不是最漂亮的解决方案,但我相信它应该有效。

答案 1 :(得分:1)

在php中你可以做这样的事情

<?php if(($nvTb == 1) ||  if($nvTb == 2)) {


}?>

答案 2 :(得分:1)

看起来像Smarty。试试这样:

{if $nvTb == 1 || $nvTb == 2}

干杯。

答案 3 :(得分:1)

你可以试试这个:

<?php 
switch($nvTb) {
    case 1:
        //your code here
    case 2:
        //your code here
}

答案 4 :(得分:1)

如果你使用smarty试试这个

{if ($nvTb eq 1) || ($nvTb eq 2)}
    do something
{/if}

在你的情况下

<a role="tab" {if ($nvTb eq 1) || ($nvTb eq 2)} id="fichaScroll" {else} data-toggle="tab" {/if}> 

答案 5 :(得分:0)

php中没有“eq”只需使用== - &gt;

if ($nvTb == 1 || $nvTb == 2)

注意:php ===中还有一个类型安全的比较 有关更多信息,请查看此处http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison

答案 6 :(得分:0)

最后,错误位于id部分。当具有多个部分并使用相同的id时可能会导致错误。为了解决这个问题,我使用了类似的代码:

<a role="tab" {if ($nvTb eq 1) || ($nvTb eq 2)} class="fichaScroll" {else} data-toggle="tab" {/if}>

将javascript从#更改为。

一旦完成,双if语句就可以正常工作。