PHP实现一个限制实例化次数的类示例


Posted in PHP onSeptember 16, 2019

本文实例讲述了PHP实现一个限制实例化次数的类。分享给大家供大家参考,具体如下:

实现思路

  1. 定义一个static变量$count,用于保存实例化对象的个数
  2. 定义一个static方法create,通过该方法判断$count的值,进而判断是否进一步实例化对象。
  3. 定义构造函数,$count+1
  4. 定义析构函数,$count-1

实现代码

<?php
class demo{
  public $name;
  public static $count=0;
  private function __construct($name){
    echo "create $name <br/>";
    $this->name = $name;
    self::$count++;
  }
  public function __destruct(){
    echo "destory ".$this->name."<br/>";
    self::$count--;
  }
  public static function create($name){
    if(self::$count>2){
      die("you can only create at most 2 objects.");
    }else{
      return new self($name);
    }
  }
}
$one = demo::create("one");
$two = demo::create("two");
$two = null;
$three = demo::create("three");

运行结果:

create one
create two
destory two
create three
destory three
destory one

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
将OICQ数据转成MYSQL数据
Oct 09 PHP
PHP生成UTF8文件的方法
May 15 PHP
php Smarty初体验二 获取配置信息
Aug 08 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
Jul 01 PHP
mcrypt启用 加密以及解密过程详细解析
Aug 07 PHP
使用配置类定义Codeigniter全局变量
Jun 12 PHP
php动态变量定义及使用
Jun 10 PHP
ThinkPHP路由详解
Jul 27 PHP
HTML中嵌入PHP的简单方法
Feb 16 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
Aug 01 PHP
WAF的正确bypass
Jan 05 PHP
Yii实现微信公众号场景二维码的方法实例
Aug 30 PHP
thinkPHP5框架路由常用知识点汇总
Sep 15 #PHP
php项目中类的自动加载实例讲解
Sep 12 #PHP
php+jQuery ajax实现的实时刷新显示数据功能示例
Sep 12 #PHP
php创建多级目录与级联删除文件的方法示例
Sep 12 #PHP
PHP实现的文件浏览器功能简单示例
Sep 12 #PHP
PHP通过文件保存和更新信息的方法分析
Sep 12 #PHP
关于Curl在Swoole协程中的解决方案详析
Sep 12 #PHP
You might like
php实现的用户查询类实例
2015/06/18 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
prototype 1.5 &amp; scriptaculous 1.6.1 学习笔记
2006/09/07 Javascript
常见表单重复提交问题整理及解决方法
2013/11/13 Javascript
超简单JS二级、多级联动的简单实例
2014/02/18 Javascript
js 触发select onchange事件代码
2014/03/20 Javascript
JS中FRAME的操作问题实例分析
2014/10/21 Javascript
JS实现控制表格行文本对齐的方法
2015/03/30 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
nodejs实现bigpipe异步加载页面方案
2016/01/26 NodeJs
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
Bootstrap按钮组件详解
2016/04/26 Javascript
详解js的事件处理函数和动态创建html标记方法
2016/12/16 Javascript
node使用UEditor富文本编辑器的方法实例
2017/07/11 Javascript
JS按钮闪烁功能的实现代码
2017/07/21 Javascript
ES6中新增的Object.assign()方法详解
2017/09/22 Javascript
在element-ui的el-tree组件中用render函数生成el-button的实例代码
2018/11/05 Javascript
通过vue写一个瀑布流插件代码实例
2019/09/07 Javascript
vuex存值与取值的实例
2019/11/06 Javascript
[04:45]DOTA2-DPC中国联赛正赛 iG vs LBZS 赛后选手采访
2021/03/11 DOTA
python实现数据预处理之填充缺失值的示例
2017/12/22 Python
Python文件监听工具pyinotify与watchdog实例
2018/10/15 Python
django基于restframework的CBV封装详解
2019/08/08 Python
基于django传递数据到后端的例子
2019/08/16 Python
解决Windows下python和pip命令无法使用的问题
2020/08/31 Python
解释一下抽象方法和抽象类
2016/08/27 面试题
经贸专业毕业生求职信范文
2014/05/01 职场文书
2014年基层党建工作总结
2014/11/11 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
旷课检讨书范文
2015/01/27 职场文书
南极大冒险观后感
2015/06/05 职场文书
调解协议书范本
2016/03/21 职场文书
Nginx域名转发https访问的实现
2021/03/31 Servers
Python3 多线程(连接池)操作MySQL插入数据
2021/06/09 Python
JVM之方法返回地址详解
2022/02/28 Java/Android
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server