为什么会利用单例模式?
在网上查了一下资料,记录一下也方便自己往后查看。
单例模式顾名思义,只有一个实例。可以节约内存和资源,紧张是php在和数据库打交道的时候,每new一次工具都会花费一定的资源。
众所周知,PHP措辞是一种阐明型的脚本措辞,这种运行机制使得每个PHP页面被阐明实行后,所有的干系资源都会被回收。也便是说,PHP在措辞级别上没有办法让某个工具常驻内存,这和asp.net、Java等编译型是不同的,比如在Java中单例会一贯存在于全体运用程序的生命周期里,变量是跨页面级
的,真正可以做到这个实例在运用程序生命周期中的唯一性。然而在PHP中,所有的变量无论是全局变量还是类的静态成员,都是页面级的,每次页面被实行时,都会重新建立新的工具,都会在页面实行完毕后被清空,这样彷佛PHP单例模式就没有什么意义了,以是PHP单例模式我以为只是针对单次页面
级要求时涌现多个运用处景并须要共享同一工具资源时是非常故意义的。
话不多说,先上代码
<span style=\公众font-size: 14px;\"大众><span style=\"大众font-size: 12px;\公众><?php</span><br><br><span style=\公众font-size: 12px;\"大众>class User</span><br><span style=\"大众font-size: 12px;\"大众>{</span><br><span style=\公众font-size: 12px;\"大众> /</span><br><span style=\"大众font-size: 12px;\"大众> 1、创建一个存放工具的私有化静态变量</span><br><span style=\"大众font-size: 12px;\"大众> 2、私有化克隆方法</span><br><span style=\公众font-size: 12px;\公众> 3、私有化布局方法</span><br><span style=\公众font-size: 12px;\"大众> 4、创建实例化工具的唯一入口</span><br><span style=\公众font-size: 12px;\"大众> </span><br><span style=\"大众font-size: 12px;\公众> /</span><br><span style=\"大众font-size: 12px;\公众> private static $_instance = '';</span><br><span style=\公众font-size: 12px;\公众> private function __clone(){}</span><br><span style=\"大众font-size: 12px;\公众> private function __construct(){}</span><br><span style=\公众font-size: 12px;\公众> static public function getInstance()</span><br><span style=\"大众font-size: 12px;\"大众> {</span><br><span style=\"大众font-size: 12px;\公众> if(is_null(self::$_instance) || isset(self::$_instance)){</span><br><span style=\"大众font-size: 12px;\"大众> self::$_instance = new User();</span><br><span style=\"大众font-size: 12px;\公众> }</span><br><span style=\"大众font-size: 12px;\公众> return self::$_instance;</span><br><span style=\公众font-size: 12px;\"大众> }</span><br><span style=\"大众font-size: 12px;\公众> public function getIp()</span><br><span style=\"大众font-size: 12px;\"大众> {</span><br><span style=\公众font-size: 12px;\公众> return $_SERVER['SERVER_ADDR'];</span><br><span style=\"大众font-size: 12px;\"大众> }</span><br><span style=\公众font-size: 12px;\"大众>}</span><br><span style=\"大众font-size: 12px;\公众>$op = User::getInstance();</span><br><span style=\"大众font-size: 12px;\"大众>echo $op->getIp();</span><br><br></span>
以上便是浅谈对PHP单例模式的理解以及示例代码的详细内容,更多请关注其它干系文章!
更多技巧请《转发 + 关注》哦!