在 Javascript/Smarty 中访问 PHP stdClass 对象


Accessing a PHP stdClass Object in Javascript/Smarty

我有一个 stclass 对象,我正在用 PHP 代码初始化它。对象返回

object(stdClass)[238]
  public '0' => string 'Jun 20, 2012 03:02 PM' (length=21)
  public '1' => string 'Jun 20, 2012 03:26 PM' (length=21)
  public '2' => string 'Jun 21, 2012 01:12 PM' (length=21)

关于做var_dum($myObjectName)

我正在将其传递给聪明的模板,我需要根据 javascript 变量在索引 [i] 处访问 stdClass 对象的值。

我尝试了其中几种:

{/literal} {$myObjectName}{literal} 
{/literal} {$myObjectName.0}{literal} 
{/literal} {$myObjectName.'0'}{literal} 
{/literal} {$myObjectName.'myLocalJSVariable'}{literal} 

但我不是在特定索引处获取对象值的包

我可以建议你使用json_encode()将数据转储到json,将其保存到javascript可以访问的东西中,然后从javascript访问你的数据吗?

{$myObjectName->javaScriptVariable}听起来就像您尝试访问服务器上的某些客户端数据或客户端上的某些服务器数据 - 除非您提供数据,否则这是不可能的。

你试过{$myObjectName->0}吗?

如果你想像使用数组一样使用它,你必须将对象的数组版本传递给 Smarty:

$smarty->assign('myObjectName', get_object_vars($obj));

get_object_vars() 方法返回对象中所有属性的命名数组。

你为什么不把对你的对象的引用传递给smarty呢?

$smarty->assign('myObjectName', &$obj);

然后在 smarty 中您可以使用 {$myObjectName->whatever} 语法...