记得以前看过老虎的一个帖子,老虎好像说他经常用类的静态属性,因为老虎注重效率.不过我觉得,这样发挥不出来面向对象的真正的作用,上次在书上看到了类的单例模式
比如数据库类,如果每次使用都实例化的确很浪费资源,效率低下.但是使用类的单例模式,在第一次使用时实例化类,以后使用时只返回这个实例的句柄
class db
{
private static $obj=NULL;
private function __construct()
{
}
public static function getobj()
{
if(self::$obj==NULL)
self::$obj=new db();
else
return self::$obj;
}
private function __clone()
{
}
}
将构造函数与克隆函数设为私有,防止直接实例化或克隆产生新的实例.
以后在使用时,$obj=db::getobj();就可以了
@老虎会游泳 我的问题是,一个脚本结束后类的静态属性还会保留着?在另一个脚本竟然还能调用?
你的问题的答案是否定的,PHP在一次请求结束后不会保留任何东西。你理解错那句话的意思了。它是说,在一次请求中很可能连接数据库多次,用这种方法可以使多次共用一个数据库连接。