smarty中是否有任何函数可以在smarty中检查类的有效对象?
假设$obj
具有某种价值。
如何在smarty中检查$obj
是否是'TestClass'的对象?
答案 0 :(得分:5)
这是检查变量是Smarty中特定类的对象的方法。
if( true eq isset($obj) && true eq is_object($obj) && $obj instanceof 'TestClass' ){
//do something
}
答案 1 :(得分:3)
这适用于Smarty2和Smarty3:
{if $obj instanceof TestClass}
…
{/if}
答案 2 :(得分:1)
试试这个
if($obj instanceof TestClass )
{
echo 'yes';
}
else
{
echo 'no';
}
答案 3 :(得分:0)
你可以在smarty代码中调用php函数。试试这个:
{if $customer instanceof Customer}
YES, instance of Customer
{else}
NO, Not an instance
{/if}
此外,如果控制器代码有许多路径,最好在使用变量之前检查变量是否已实际设置:
{if isset($customer) && $customer instanceof Customer}
YES, instance of Customer
{else}
NO, Not an instance
{/if}
答案 4 :(得分:0)
可以使用函数is_a
。
{if is_a($customer, 'Customer')}
YES, instance of Customer
{else}
NO, Not an instance
{/if}
答案 5 :(得分:0)
如果需要,您可以使用$obj|get_class
示例:
{if $animal instanceof Horse}
<span>Yup, it's a horse class.</span>
{else}
<span>It is actually a {{$animal|get_class}}</span>
{/if}
答案 6 :(得分:0)
这是一个很好的例子。
{if is_object($obj)}
{*=== your code ===*}
{else}
{*=== your code ===*}
{/if}
我们可以使用is_object知道这是否是一个对象。
希望它将对某人有所帮助。