从空值创建默认对象 - 在php升级之后

时间:2015-02-09 07:32:06

标签: php

我已经从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 /.....

中从空值创建默认对象

我真的不明白如何解决这个问题?

1 个答案:

答案 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();