PHP / Smarty给出'Array'而不是正确的值?

时间:2010-11-09 09:49:05

标签: php smarty

以下是我的代码,来自搜索结果页面:

{if $listing.SalaryType!=''&& $listing.Salary!=''}<dt>Salary:</dt>
<dd>{$listing.Salary} {$listing.SalaryType}</dd>{/if}

这给出了这个输出:

Screenshot

它表示'Array'而不是正确的值。知道我可以从哪里开始寻找解决这个问题的方法吗? “阵列”来自哪里?

以下是一些更多信息。在作业详细信息页面上,此代码:

<div class="smallListingInfo"><strong>[[FormFieldCaptions!Salary]]:</strong> {display property=Salary} [[$listing.SalaryType]]</div>

给出这个输出:

second example

您可以看到工资值在此实例中有效,这有何不同?

使用smarty调试控制台我得到以下内容:

Title => Services Senior Manager
EmploymentType => Contractor
JobCategory => Accounting,Admin-Clerical
Occupations => empty
Country => United States
Salary => Array (5)
  add_parameter => 2
  value => 30000
  currency_sign => £
  course => 1
  currency_code => USD
State => California
SalaryType => per month
City => Los Angeles

如何获取要显示的值而不是'Array'?

3 个答案:

答案 0 :(得分:1)

这意味着{$listing.Salary}值是array而不是您期望的值。当要求PHP将数组视为字符串时,它将使用值“Array”。修复您的数据结构和/或模板以使用正确的值。

$foo = array();
echo $foo; // echoes "Array"

答案 1 :(得分:1)

$listing.Salary似乎是一个数组。

在HTML代码中插入{debug}以转储调试控制台,并显示已分配的变量。

在Smarty文档中搜索“debug”(抱歉,我现在无法发布链接)

如何访问Smarty中的数组元素也可以在文档中找到,只需搜索“变量”

答案 2 :(得分:0)

{$ listing.Salary}是一个数组。

在PHP代码中,传递给模板的对象/数组:'Salary'索引或属性应该返回一个整数而不是数组。