我已将我的智能升级到v3。 我有一个奇怪的事情。它抛出SmartyCompilerExceptions是正常的,因为我有v2格式的代码。
我在我的tpl:{foreach key=k item=i from=$err}...{/foreach}
上有这个,这在Smarty 3中不起作用。我会改变这个,但我的问题是:
Smarty仅在我的生产服务器中抛出这些错误
Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template "/www/site/tpl/system.tpl" on line 272 "{foreach key=key item=item from=$content}" - Unexpected "$", expected one of: "identifier"'
在我的家庭服务器上一切正常。
我在两个系统上都有相同的apache,php和Smarty。
这怎么可能?为什么使用Smarty 3在我的测试系统中使用旧代码而不会抛出错误?有什么想法吗?
答案 0 :(得分:0)
尝试将您的通话更改为:
{foreach key="key" item="item" from=$content}
也就是说,将字符串括在双引号中。在引用事物时,Smarty 3更严格
答案 1 :(得分:0)
原因,因为我的生产服务器抛出一个错误而我的测试服务器不是我生产的那个是mbstring.func_overload
设置为7而在我的测试服务器上它设置为0.
希望对某人有所帮助。