php单例模式哪里出错了

classsingleton{privatestatic$_instance;privatefunction__construct($my_dsn){returnnewP... class singleton{
private static $_instance;
private function __construct($my_dsn){
return new PDO($my_dsn);
}
private function __clone(){
}

public static function getPdo($_dsn){
if(!self::$_instance instanceof self)
{
self::$_instance = new singleton($_dsn);
}
return self::$_instance;
}
}

后面调用

$dsn = 'mysql:dbname = test;host = localhost;user = user;password = 1234';
$pdos = singleton::getPdo($dsn);
展开
 我来答
回83440
2014-08-14 · TA获得超过115个赞
知道答主
回答量:136
采纳率:66%
帮助的人:60.8万
展开全部
1、 private $conf = array; //这个的作用是什么?
这只是为了初始化一个属性罢了,等于什么不重要。NULL也可以,在下面的代码中它会被重新赋值。另外,如果希望初始值是数组的话,这样写是错的。应该是 = array();

2、$this->conf = conf::getIns(); //这个属性可以访问getins(); 有什么作用
你这里应该还有另一个 class conf 吧。它只是调用另一个类的方法,取回结果并赋值到 $conf 上罢了(上面说过的)

3、$this->connect($this->conf->host,$this->conf->user,$this->conf->pwd);//这个是不是把host,conf,pwd分别放在数组里...
把取回来的结果做为参数交给下面的方法。。这里从头到尾和数组一点关系也没有。只是最基本的变量传来传去罢了。
是否可以解决您的问题?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ixyqq_net
2014-08-14 · TA获得超过888个赞
知道小有建树答主
回答量:1160
采纳率:0%
帮助的人:1268万
展开全部
<?php
class Singleton {
    private static $_dsn  = NULL;
    private function __construct($my_dsn){
       return new PDO($my_dsn);
    }

    public static function GetPdo($my_dsn){
        if(is_null(self::$_dsn)){
            self::$_dsn = new self($my_dsn);
        }
        return self::$_dsn;
    }    
}
$dsn = 'mysql:dbname = test;host = localhost;user = user;password = 1234';
$GetPdo = Singleton::GetPdo($dsn);
?>

望采纳 Thx

追问
不得
追答
单态模式,我们在项目中运用的很多,是这样的,你链接PDO方式错了。
$dsn = new PDO('mysql:host=xxx;port=xxx;dbname=xxx', 'username', 'password');
$dsn = new PDO("mysql:host=localhost;dbname=test","user","1234");
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式