qq_name猿_0
weixin_慕虎2468686
我想到的是专用于数据库的连接类。
因为数据库是一种资源,如果不用单例模式做数据库连接的类的话,在脚本中任由多次连接这个数据库的话,会造成服务器的压力,因为数据库有最大连接数的概念。单例模式说白了,意思就是保证只能实例化一次数据库连接。无论你在代码中有多少个new 操作。
又巍
对,就是这样的
qq_风行天下_7
你不怕报错吗
追梦__DREAM
如果你只希望在本类使用就设置为私有的属性;如果你也希望能被子类使用,则设置为受保护的属性。至于static,决定你这个无需实例化即可访问。
小白不是兔
确实是这样,通过::范围操作符访问的属性要是静态属性
9号攻城狮
它说的意思是:你的静态方法里面,不能有动态的属性。把$db设置成静态就可以了
frgo_03360772
不是呀,安装 PSR-0 设计模式,命名空间跟实际路径一样,你可以在 Factory 中通过命名空间实例化(new)不在 IMOOC 路径下的 Database 类的对象。
// 假如 Database 类在 Lib 文件夹下
Database 文件内容:
namespace Lib;
Factory文件内容:
use Lib\Database;// 这步很重要,这样不在同一路径的 Database 也可以被实例了。
function createDatabase(){
$db = new Database();
}这样依旧可以通过工厂模式实例不在同一目录的数据库类
$db = IMOOC\Factory::createDatabase();
jiajial
只是告诉你什么是单例,其余的自己去完善啦
5688888888
public static function getInstance(){
if(!(self::$_instance instanceof self)){
self::$_instance = new self;
}
return self::$_instance;
}
单例的实现是这样的,你看下!对了,你的代码报什么错呢?
Youzx
圣人无过。能发现错误,这本身就能证明你自己在认真学习。
为君劝学,何必苛责。
张炽羽
陈诗烁
丑九怪
丑九怪
慕盖茨6106515
学习qbl
在PHP中所有对象都是引用赋值的。不需要加&符号。