如何在smarty中检查类的有效对象?

时间:2012-08-21 12:11:26

标签: php smarty

smarty中是否有任何函数可以在smarty中检查类的有效对象?

假设$obj具有某种价值。

如何在smarty中检查$obj是否是'TestClass'的对象?

7 个答案:

答案 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知道这是否是一个对象。

希望它将对某人有所帮助。