
if(self::$ins){
return self::$ins;
}else{
self::$ins=new mysql();
return self::$ins;
}
这句意思是如果是自身的一个实例就返回,不是就创建一个自身,所以叫单例模式,只有一个实例new mysql()实际上也可以写作new self()
单例不只是PHP中有,是面向对象类语言都有的概念。
你说的是做用,是从语言层面上。只有一个实例。
我觉得面试官要问的是实际使用的含义,对于整个程序设计而言的好处。
我本身也不是什么高手,觉得我说的不对轻喷。
我也用过PHP的TP框架,但是用的很浅,没有体会到有什么特别的。
我说说java的spring框架,它的bean实例化是单例的,struts2也支持选择是否单例。
它能节约内存开销,这是最明显的,一个工具类,或者一个服务类,单例下,一个实例足够,并不需要创建N此,无故的浪费掉内存。
从设计上而言,一个只需要实例化一次就足够的类,设计为单例,这样可以做到从设计上而言更清晰
//静态变量保存全局实例
private static $_instance = null;
//私有构造函数,防止外界实例化对象
private function __construct() {
}
//私有克隆函数,防止外届克隆对象
private function __clone() {
}
//静态方法,单例统一访问入口
static public function getInstance() {
if (is_null ( self::$_instance ) || isset ( self::$_instance )) {
self::$_instance = new self ();
}
return self::$_instance;
}
把上面代码copy到php类里面就可以了
以上就是关于PHP单例模式问题全部的内容,包括:PHP单例模式问题、php的单例模式有什么具体好处具体在哪里实现面试的时候让人问到..求解、怎么用php实现单例模式等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)