当前位置:首页 > PHP > 正文内容

PHP单例模式

高老师9年前 (2017-06-27)PHP2065
<?php
/*
 * 
 单粒模式,只能造出一个对象
 1.肯定每次new只能返回一个对象,可以使用静态方法解决
 2.子类继承也禁止重写构造方法,添加final搞定
 * 
 */
 
 
//1.普通类的实例,得到2个对象
// class  Single{
//  
// public $rand;
// 
// public function __construct(){
// $this->rand=mt_rand(1000000, 9999999999);
// }
// 
// }
// 
// var_dump(new Single());
// var_dump(new Single());
 
 
 
//2.单例模式,得到1个对象
 class  Single{
  
 
public $rand;
static $obj;
 
final protected function __construct(){
$this->rand=mt_rand(1000000, 9999999999);
}
 
//不使用静态方法就无法new
static function  getins(){
//判断是否已经实例化
if(self::$obj==null){
self::$obj=new Single();
}
return self::$obj;
 
}
 
 }
 
 
 
//测试子类继承,需要实例化子类,只能使用静态方法
 class Test extends Single{
 
 
 }
 
 
 
 
var_dump(Single::getins());
var_dump(Single::getins());
 
?>

PHP的大多数应用中都会存在大量的数据库操作,如果不用单例模式,那每次都要new操作,但是每次new都会消耗大量的系统资源和内存资源,而且每次打开和关闭数据库都是对数据库的一种极大考验和浪费。所以单例模式经常用在数据库操作类中

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/15.html

分享给朋友:

“PHP单例模式” 的相关文章

php 地址转换经纬度

php 地址转换经纬度

//$ak开发密钥,$cityname城市名称(支持省县乡详细地址) public  function   getposition($ak,$cityname){ $callback=array('lng'=>0,'l...

php 数组转换xml,php 数组转成xml,php数组转xml 函数

php 数组转换xml,php 数组转成xml,php数组转xml 函数

源码:特别适用于微信支付中通知微信支付网关function array2xml($arr, $level = 1) { $s = $level == 1 ? "<xml&g...

PHP异常处理,PHP自定义错误,PHP记录错误日志

PHP异常处理,PHP自定义错误,PHP记录错误日志

面试中PHP面试官会问调用一个不存在的方法,如何知道是哪个文件哪行调用的?假设方法是getWorkLoad()回答1:开启PHP错误输出,PHP会输出Fatal error: Call to undefined function getWorkLoad() in D:\wwwroot\thinkpa...

【一】PHP多进程学习-简单创建父子进程.理解父子进程运行流程

【一】PHP多进程学习-简单创建父子进程.理解父子进程运行流程

(1).学习的目标:学会创建父子进程,并且能够区分当前进程是父还是子;了解父进程执行过程,子进程执行过程;能够用多进程执行任务(2).相关函数学习:    (2.1)pcntl_fork()执行时:       &nbs...

php定义常量数组

php定义常量数组

<?php //php7+ define('CONFIG', [     'MYSQL' => '127.0.0.1',     ...

 php命令行中文乱码,php cli中文乱码

php命令行中文乱码,php cli中文乱码

<?php //如果支持exec函数,可以使用的方式 exec('chcp 65001'); //如果exec函数因安全问题禁用,可以使用的方式 pclose(popen('chcp 65001', 'r'));...