警告:非法字符串偏移'category_id'- PHP 5.4 - smarty到PHP编译


Warning: Illegal string offset 'category_id' - PHP 5.4 - smarty to php compilation

我刚刚将一个站点移动到运行PHP 5.4的新服务器上。X,只能假设是为什么我在编译模板上得到这个错误,但作为编译的tpl.php文件生成不能工作到点的问题是什么,想知道是否有人可能知道?

TPL是Smarty,下面是导致错误的行:

原TPL文件代码:(smarty)

{assign var=darin value=$category.category_id} 

编译错误文件:(从smarty编译到php缓存文件)

<?php $this->assign('darin', $this->_tpl_vars['category']['category_id'], false); ?> 

由于其编译和转换,我不确定如何修复smarty函数,所以它编译正确的PHP代码,在缓存中编译,导致问题…什么好主意吗?

编译后的文件在前端显示的错误:

 Warning: Illegal string offset 'category_id' in /websites/am/domain.com.au/var/cache/templates/customer/%%F3^F39^F3960A5D%%view.override.tpl.php on line 42

提前感谢,詹姆斯。

它的平均类别不是数组。

一次性打印{{$category}} var,查看其类型

你应该怎么做:

  1. 删除缓存/编译文件,检查是否出现错误

  2. 如果发生错误,检查包含$category变量的内容。很简单,它可以不是一个数组或没有category_id索引

  3. 如果你没有使用最新的Smarty版本,你应该考虑升级和测试最新的版本(这可能是一个错误)

如果没有帮助,请提供$category变量数据