Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在静态函数中返回静态变量会在控制台中生成错误_Php_Database_Oop - Fatal编程技术网

Php 在静态函数中返回静态变量会在控制台中生成错误

Php 在静态函数中返回静态变量会在控制台中生成错误,php,database,oop,Php,Database,Oop,我已经为此工作了几个小时,但没有找到错误。我也在网上搜索,但似乎没有一个能解决我这个奇怪的问题。有点奇怪,因为相同的代码在我拥有的不同应用程序上工作。唯一不同的是,我现在连接到Sybase,而之前的应用程序连接到MySQL。以下是我在DB类中的内容: class DB{ private static $_instance = null; private function __construct(){ try{ $this->_pdo

我已经为此工作了几个小时,但没有找到错误。我也在网上搜索,但似乎没有一个能解决我这个奇怪的问题。有点奇怪,因为相同的代码在我拥有的不同应用程序上工作。唯一不同的是,我现在连接到Sybase,而之前的应用程序连接到MySQL。以下是我在DB类中的内容:

class DB{
    private static $_instance = null;
    private function __construct(){
        try{
            $this->_pdo = new PDO ("dblib:host=host:port;dbname=myDb","username","pwd");
            echo 'Connected';
        }
        catch(PDOException $e){
            die($e->getMessage());
        }
    }

    public static function getInstance(){
        if(!isset( self::$_instance )){
            self::$_instance = new DB();
        }

        return self::$_instance; //this line generates 500 internal server error in browser console
    }
}
我在index.php中的代码

echo DB::getInstance();
这会输出“已连接”一词,但同时会在我的浏览器控制台中生成500个代码错误。我真的不明白为什么
返回self::$\u instance
出现问题。当我执行
返回'test'
时,没有生成错误。我知道我错过了一些东西,但我无法理解为什么。我在Ubuntu上使用PHP5.3。先谢谢你

  • 查看错误日志。您将在那里看到详细的错误消息;Apache正在处理的500错误在这里没有意义
  • 最有可能的问题是回声
    DB::getInstance
    应返回一个对象,并且不能“回送”对象。您将在错误日志中发现的错误很可能是“无法将对象转换为字符串”

  • 我想你是指我的PHP错误日志吧。顺便说一句,你是对的<代码>回声部分是问题所在,我删除了它们,一切正常。多么愚蠢的错误啊。我会接受你的回答。非常感谢。