4

smarty でクラスの有効なオブジェクトをチェックする機能はありますか?

$obj何らかの値があるかどうかを考えてみましょう。

$objsmartyで「TestClass」のオブジェクトかどうかを確認する方法は?

4

7 に答える 7

6

これは Smarty で変数が特定のクラスのオブジェクトであることを確認する方法です。

if( true eq isset($obj) && true eq is_object($obj) && $obj instanceof 'TestClass' ){
//do something
}
于 2012-08-21T12:18:05.197 に答える
5

これは Smarty2 と Smarty3 で機能します。

{if $obj instanceof TestClass}
  …
{/if}
于 2012-08-21T13:18:31.753 に答える
2

これを試して

if($obj instanceof TestClass )
{
    echo 'yes';
}
else
{
    echo 'no';
}
于 2012-08-21T12:14:27.587 に答える
1

スマートコードで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}
于 2012-08-21T13:21:27.910 に答える
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}
于 2017-01-20T17:36:35.627 に答える
0

これには関数is_aを使用できます。

{if is_a($customer, 'Customer')}
    YES, instance of Customer
{else}
    NO, Not an instance
{/if}
于 2014-09-11T05:44:16.533 に答える