我有这个功能:
<?PHP
function T($w) {
$method = $GLOBALS['G_SP']["lang"][spController::getLang()]; // LINE 2
if(!isset($method) || 'default' == $method){
return $w;
}elseif( function_exists($method) ){
return ( $tmp = call_user_func($method, $w) ) ? $tmp : $w;
}elseif( is_array($method) ){
return ( $tmp = spClass($method[0])->{$method[1]}($w) ) ? $tmp : $w;
}elseif( file_exists($method) ){
$dict = require($method);
return isset($dict[$w]) ? $dict[$w] : $w;
}else{
return $w;
}
}
?>
不,我在第2行看到了这个错误:
严格标准:非静态方法spController :: getLang()不应该 在第2行的C:\ xampp \ htdocs \ inc \ spFunctions.php中静态调用
如何解决此错误?
注意:我需要在不更改php.ini的情况下修复此问题(禁用error_reporting = E_ALL | E_STRICT或display_errors = On to Off)
答案 0 :(得分:2)
如果spController::getLang()
函数没有引用实例属性(使用$this
),那么您只需要将static
添加到函数声明中。即
public static function getLang();
或者如果您使用$this
的引用,则需要创建pController
的实例,然后将getLang()
方法作为实例方法调用。
$controller = new spController();
$lang = $controller->getLang();
答案 1 :(得分:0)
$sp = new spController();
$sp->getLang();
或者您的应用程序中可能存在spController
的实例