如何检查双重条件smarty
How to check double condition 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 check like
{if $nvTb eq 1}
然后工作
在 php 你可以做这样的事情
<?php if(($nvTb == 1) || if($nvTb == 2)) {
}?>
php 中没有 "eq" 只需使用 == ->
if ($nvTb == 1 || $nvTb == 2)
注意:php中也有一个类型安全的比较===
有关更多信息,请查看此处 http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison
看起来很聪明。像这样尝试:
{if $nvTb == 1 || $nvTb == 2}
干杯。
你可以试试这个:
<?php
switch($nvTb) {
case 1:
//your code here
case 2:
//your code here
}
如果你正在使用 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}>
我猜 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
视为 true,这意味着任何 truth-ee 值也将通过检查。我猜这可能是你的问题。
如果这不是问题,请尝试以下操作:
{php}
echo '<a role="tab" ((if $nvTb === 1 || $nvTb === 2) ? id="fichaScroll"
: data-toggle="tab")>';
{/php}
无论如何都不是最漂亮的解决方案,但我相信它应该可行。
最后,错误位于id部分。当有多个部分并使用相同的 id 时,可能会导致错误。为了解决这个问题,我使用 类 代替:
<a role="tab" {if ($nvTb eq 1) || ($nvTb eq 2)} class="fichaScroll" {else} data-toggle="tab" {/if}>
并将 javascript 从 # 更改为 .
一旦完成,double if 语句就可以正常工作了。
我想检查变量 $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 check like
{if $nvTb eq 1}
然后工作
在 php 你可以做这样的事情
<?php if(($nvTb == 1) || if($nvTb == 2)) {
}?>
php 中没有 "eq" 只需使用 == ->
if ($nvTb == 1 || $nvTb == 2)
注意:php中也有一个类型安全的比较=== 有关更多信息,请查看此处 http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison
看起来很聪明。像这样尝试:
{if $nvTb == 1 || $nvTb == 2}
干杯。
你可以试试这个:
<?php
switch($nvTb) {
case 1:
//your code here
case 2:
//your code here
}
如果你正在使用 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}>
我猜 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
视为 true,这意味着任何 truth-ee 值也将通过检查。我猜这可能是你的问题。
如果这不是问题,请尝试以下操作:
{php}
echo '<a role="tab" ((if $nvTb === 1 || $nvTb === 2) ? id="fichaScroll"
: data-toggle="tab")>';
{/php}
无论如何都不是最漂亮的解决方案,但我相信它应该可行。
最后,错误位于id部分。当有多个部分并使用相同的 id 时,可能会导致错误。为了解决这个问题,我使用 类 代替:
<a role="tab" {if ($nvTb eq 1) || ($nvTb eq 2)} class="fichaScroll" {else} data-toggle="tab" {/if}>
并将 javascript 从 # 更改为 .
一旦完成,double if 语句就可以正常工作了。