我已经从PHP 5.3升级到PHP 5.4现在我的班级被打破了,我不明白为什么。
我已经建立了这个类:
class _g
{
public static $init;
public static function init()
{
if ( self::$init == null )
{
self::$init->sysLang = ( isset( $_SESSION['SYSTEM_LANG'] ) ? $_SESSION['SYSTEM_LANG'] : 'dk' );
self::$init->apiPath = CSS_API_PATH .'theme/'. API_THEME_PATH_GFX .'/gfx/';
}
return self::$init;
}
}
我收到此错误消息:
警告:在/ var / html /.....
中从空值创建默认对象
我真的不明白如何解决这个问题?
答案 0 :(得分:1)
首先,您应该阅读有关how to migrate to PHP 5.4的文章。
您在init
变量中没有实例化任何对象。
在PHP 5.3中,它生成Strict Standards
,但在PHP 5.4中,这是Warning
。
E_STRICT
不是PHP 5.3中E_ALL
的一部分,但是从PHP 5.4开始就是。
您应该遵循这些标准,因此您应该更改代码,使其在if
声明中包含以下内容:
self::$init = new stdClass();