Php 在静态函数中返回静态变量会在控制台中生成错误
我已经为此工作了几个小时,但没有找到错误。我也在网上搜索,但似乎没有一个能解决我这个奇怪的问题。有点奇怪,因为相同的代码在我拥有的不同应用程序上工作。唯一不同的是,我现在连接到Sybase,而之前的应用程序连接到MySQL。以下是我在DB类中的内容:Php 在静态函数中返回静态变量会在控制台中生成错误,php,database,oop,Php,Database,Oop,我已经为此工作了几个小时,但没有找到错误。我也在网上搜索,但似乎没有一个能解决我这个奇怪的问题。有点奇怪,因为相同的代码在我拥有的不同应用程序上工作。唯一不同的是,我现在连接到Sybase,而之前的应用程序连接到MySQL。以下是我在DB类中的内容: class DB{ private static $_instance = null; private function __construct(){ try{ $this->_pdo
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。先谢谢你
DB::getInstance
应返回一个对象,并且不能“回送”对象。您将在错误日志中发现的错误很可能是“无法将对象转换为字符串”我想你是指我的PHP错误日志吧。顺便说一句,你是对的<代码>回声部分是问题所在,我删除了它们,一切正常。多么愚蠢的错误啊。我会接受你的回答。非常感谢。