旗下导航:搜·么
当前位置:网站首页 > PHP教程 > 正文

浅谈对PHP单例形式的明白以及示例代码【php教程】

作者:搜搜PHP网发布时间:2019-11-26分类:PHP教程浏览:110


导读:本文是关于对PHP单例形式明白,感兴趣的朋侪来相识一下吧!为何会运用单例形式?在网上查了一下材料,纪录一下也轻易本身今后检察。单例形式望文生义,只要一个实例。能够勤俭内...

本文是关于对PHP单例形式明白,感兴趣的朋侪来相识一下吧!

为何会运用单例形式?
在网上查了一下材料,纪录一下也轻易本身今后检察。
单例形式望文生义,只要一个实例。能够勤俭内存和资本,主如果php在和数据库打交道的时刻,每new一次对象都邑斲丧肯定的资本。

尽人皆知,PHP言语是一种诠释型的脚本言语,这类运行机制使得每一个PHP页面被诠释实行后,一切的相干资本都邑被接纳。也就是说,PHP在言语级别上没有办法让某个对象常驻内存,这和asp.net、Java等编译型是差别的,比如在Java中单例会一向存在于全部运用程序的生命周期里,变量是跨页面级

的,真正能够做到这个实例在运用程序生命周期中的唯一性。然而在PHP中,一切的变量无论是全局变量照样类的静态成员,都是页面级的,每次页面被实行时,都邑从新建立新的对象,都邑在页面实行终了后被清空,如许好像PHP单例形式就没有什么意义了,所以PHP单例形式我以为只是针对单次页面

级要求时涌现多个运用场景并须要同享统一对象资本时黑白常有意义的。

话不多说,先上代码

<?php

class User
{
/*
* 1、建立一个寄存对象的私有化静态变量
* 2、私有化克隆要领
* 3、私有化组织要领
* 4、建立实例化对象的唯一进口
*
* **/
private static $_instance = '';
private function __clone(){}
private function __construct(){}
static public function getInstance()
{
if(is_null(self::$_instance) || isset(self::$_instance)){
self::$_instance = new User();
}
return self::$_instance;
}
public function getIp()
{
return $_SERVER['SERVER_ADDR'];
}
}
$op = User::getInstance();
echo $op->getIp();

相干教程:PHP视频教程

以上就是浅谈对PHP单例形式的明白以及示例代码的细致内容,更多请关注ki4网别的相干文章!

标签:PHP单例模式