1

PHP 5.4 でこのエラーが発生する理由がわかりません。

厳格な基準: 非静的メソッド dbInstance::getInstance() を静的に呼び出すべきではありません

クラスは次のとおりです。

class dbInstance
{
    private static $db;

    public static function getInstance()
    {
        if (! self::$db) self::$db = new db();
        return self::$db;
    }
}

私はそれを次のように呼びます:

 $registry->db = $db = dbInstance::getInstance()

ありがとう

4

1 に答える 1

1

エラーを再現できません。正しいファイルを編集したと確信していますか? または、キャッシュされたバージョンの出力が表示されている可能性がありますか?

<?php
$db = dbInstance::getInstance();

class dbInstance
{
    private static $db;

    public static function getInstance()
    {
        if (! self::$db) self::$db = new db();
        return self::$db;
    }
}

class db {
    public function __construct() {
        echo 'db::construct filemtime=', date('Y-m-d H:i:s', filemtime(__FILE__)), ' PHPVERSION=', PHP_VERSION;
    }
}

パソコンで印刷

db::construct filemtime=2012-07-27 14:50:37 PHPVERSION=5.4.1
于 2012-07-27T12:52:12.603 に答える