我正在将旧项目从 PHP 5.X 迁移到 7.0.4,并将 Smarty 从 2.6.27 迁移到 3.1.29。解决了几个小问题后,我收到了一条令人惊讶的错误消息
Fatal error: in C:...\smarty-3.1.29\libs\sysplugins\smarty_internal_templatecompilerbase.php on line 8
奇怪的是,这个文件的第8行是多行phpdoc注释的中间。根本没有代码执行。
为什么显示此错误消息以及它的含义是什么?
最佳答案
经过痛苦的调查,结果发现错误消息的行号是正确的,但文件名却不对。错误不在上述 php 代码的第 8 行。它位于我模板的第 8 行。
模板文件是带有一些国际字符的 ISO-8859-2 编码文件:
BLAH
{ * részletezés * }
BLA
模板文件第 8 行中的“részletezés”一词包含了罪魁祸首字符。
较旧的 smarty 版本 (2.X) 运行良好,并带有国际 smarty 注释。问题是错误消息具有误导性。
将国际字符更改为英文字符后,错误消失。
关于comments - 为什么我收到 "Fatal error: in ...smarty_internal_templatecompilerbase.php on line 8"错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35916151/