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 回答