我将旧的xampp(1.7.3)localhost服务器升级到1.8.0。现在,我的所有页面都没有工作smarty模板引擎(2.6.6),我看到Strict Standards
错误。什么问题?如何解决这个问题?
NOTE : This Wroked Fine In Old Xampp(1.7.3).
错误部分:
Strict Standards: Non-static method STemplate::assign() should not be called statically in C:\xampp\htdocs\tube\include\config.php on line 88
Strict Standards: Non-static method STemplate::create() should not be called statically in C:\xampp\htdocs\tube\libraries\mysmarty.class.php on line 42
Strict Standards: Non-static method STemplate::setCompileDir() should not be called statically in C:\xampp\htdocs\tube\include\config.php on line 181
Strict Standards: Non-static method STemplate::setTplDir() should not be called statically in C:\xampp\htdocs\tube\include\config.php on line 182
我的配置行错误:
STemplate::assign($field, $config[$field]); // line 88
STemplate::setCompileDir($config['basedir']."/temporary"); // line 181
STemplate::setTplDir($config['basedir']."/themes"); // line 182
my.Smarty.class.php(错误第2行)
function assign($var, $value) {
global $Smarty;
if (!isset($Smarty)) {
STemplate::create(); // <---- line 42
}
$Smarty->assign($var, $value);
}
感谢任何帮助:)
答案 0 :(得分:3)
这是因为您使用的是strict standards
的现代版PHP。您可以通过声明来使代码工作:
public static function assign($var, $value)
然而,从其他错误判断,你会遇到很多问题。您可以尝试禁用严格的标准,但最好升级到Smarty
的现代版本。