<?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都会消耗大量的系统资源和内存资源,而且每次打开和关闭数据库都是对数据库的一种极大考验和浪费。所以单例模式经常用在数据库操作类中
项目中使用服务来执行webservice,由于对方系统api不稳定,经常导致服务崩溃,只能重启,一个月差不多要重启一次。初期的解决办法是捕获异常,然后continue掉。<?php try { $url = 'http...
(1).前端文件:<form action="upload.php" method="post" enctype="multipart/form-data"> &...
(1).学习的目标:学会创建父子进程,并且能够区分当前进程是父还是子;了解父进程执行过程,子进程执行过程;能够用多进程执行任务(2).相关函数学习: (2.1)pcntl_fork()执行时: &nbs...
在编写多进程的实例中我在每个进程中使用如下代码://调用等待信号的处理器 while (true) { pcntl_signal_dispatch(); }开启5个进程,cpu直接100%修正之后的代码://调用等待信号的处理器 while&...
<?php $member = new class { public function getInfo() { ...
有时候我们需要爬一个接口,但是这个接口需要很多参数,包括header和cookie要去编写,使用php curl模拟实在太慢。我们可以通过浏览器的network来复制请求为curl命令。例如我需要模拟请求接口地址:https://www.xkmz.cc/Ajax/Debug/delly,我们只需要在...