htmlspecialchars()期望参数1是字符串,数组给定php

htmlspecialchars()期望参数1是字符串,数组给定php,php,arrays,string,Php,Arrays,String,因此,我试图在我的tpl中调用此函数,但我得到了错误消息: 注意:未定义的偏移量:第342行/var/www/virtual/www.less.de/ivanovm/lib/data/Contract.class.php中的1 警告:htmlspecialchars()要求参数1为字符串,数组在第135行的/var/www/virtual/www.less.de/ivanovm/templates/compiled/d9e0e5ca75d171cae06b57137aa1475b7f24e533

因此,我试图在我的tpl中调用此函数,但我得到了错误消息: 注意:未定义的偏移量:第342行/var/www/virtual/www.less.de/ivanovm/lib/data/Contract.class.php中的1

警告:htmlspecialchars()要求参数1为字符串,数组在第135行的/var/www/virtual/www.less.de/ivanovm/templates/compiled/d9e0e5ca75d171cae06b57137aa1475b7f24e533_2.file.contractList.tpl.php中给出 (第135行为空)

这是我的模板中的调用(我试图调用的每个函数都会出现这个错误,上面的代码只是一个例子

{foreach from=$data item=item}
                <tr>
                    <td>
                        <a href="{System::getLink('contractView')}"><input type="button" style="text-align: center"
                                                                           width="200em"
                                                                           value="&raquo;{$item->contractID}&laquo;"></a>
                    </td>
                    <td>
                        {$item->date|date_format:"%d.%m.%Y"}
                    </td>
                    <td>
                        {$item->selectedPrice}
                    </td>
                    <td>
                        {$item->getYearlyConsumption()}
                    </td>
                    <td>
                        {$item->getConsumptionPointsCount()}
                    </td>
                    <td>
                        {if $item->status == 0}
                            <span {literal}style="background-color:#ff9933"{/literal}>Wird Bearbeitet</span>
                        {/if}
                        {if $item->status == 1}
                            <span {literal}style="background-color:#33cc33"{/literal}>Abgeschlossen</span>
                        {/if}
                        {if $item->status == 2}
                            <span {literal}style="background-color:#ff0000"{/literal}>Stoniert</span>
                        {/if}
                    </td>
                </tr>
            {/foreach}
{foreach from=$data item=item}
{$item->date | date_格式:“%d.%m.%Y”}
{$item->selectedPrice}
{$item->getYearlyConsumption()}
{$item->getConsumptionPointsCount()}
{如果$item->status==0}
威德比尔贝特酒店
{/if}
{如果$item->status==1}
阿伯格施洛森
{/if}
{如果$item->status==2}
斯托尼埃
{/if}
{/foreach}
getYearlyConsumption()返回数组,您试图将数组显示为字符串,包括在{}中。
{}标记调用htmlspecialchars()函数。

return$yearlyConsumption
将返回一个数组。我不明白您期望模板引擎如何处理它。我以前从未使用过模板,所以我想我可以使用smarty从类中调用我的函数。这不是可能的吗?是的,这是可能的,但函数必须返回可以在页面(例如字符串、整数、浮点)你返回了一个数组,所以你需要以某种方式将其展平。我想显示客户的每份合同的年使用量。你有什么建议吗?我真的被atm卡住了。是的。我的代码中有一个问题,我只是不确定现在如何解决它,我想我将尝试使用部分,而不是预先尝试以下内容:{foreach from=$item->getYearlyConsumption()item=el}{$el}{/foreach}
{foreach from=$data item=item}
                <tr>
                    <td>
                        <a href="{System::getLink('contractView')}"><input type="button" style="text-align: center"
                                                                           width="200em"
                                                                           value="&raquo;{$item->contractID}&laquo;"></a>
                    </td>
                    <td>
                        {$item->date|date_format:"%d.%m.%Y"}
                    </td>
                    <td>
                        {$item->selectedPrice}
                    </td>
                    <td>
                        {$item->getYearlyConsumption()}
                    </td>
                    <td>
                        {$item->getConsumptionPointsCount()}
                    </td>
                    <td>
                        {if $item->status == 0}
                            <span {literal}style="background-color:#ff9933"{/literal}>Wird Bearbeitet</span>
                        {/if}
                        {if $item->status == 1}
                            <span {literal}style="background-color:#33cc33"{/literal}>Abgeschlossen</span>
                        {/if}
                        {if $item->status == 2}
                            <span {literal}style="background-color:#ff0000"{/literal}>Stoniert</span>
                        {/if}
                    </td>
                </tr>
            {/foreach}