0

我已将 smarty 升级到 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 在我的测试系统中运行旧代码而不会引发错误?有任何想法吗?

4

2 回答 2

0

原因是我的生产服务器抛出错误而我的测试服务器没有抛出错误,因为在我的生产服务器上mbstring.func_overload设置为 7,而在我的测试服务器上设置为 0。

希望它对某人有所帮助。

于 2013-03-12T22:26:12.823 回答
0

尝试将您的呼叫更改为:

{foreach key="key" item="item" from=$content}

也就是说,将您的字符串括在双引号中。Smarty 3 在引用事物时更加严格

于 2013-03-11T20:56:04.757 回答