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 相关文章推荐
简单易用的计数器(数据库)
Oct 09 PHP
用PHP连接Oracle for NT 远程数据库
Oct 09 PHP
php.ini中的php-5.2.0配置指令详解
Mar 27 PHP
UCenter Home二次开发指南
May 28 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
May 04 PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
Apr 17 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
Feb 02 PHP
php返回当前日期或者指定日期是周几
May 21 PHP
PHP中SSO Cookie登录分析和实现
Nov 06 PHP
Laravel如何使用Redis共享Session
Feb 23 PHP
wordpress自定义标签云与随机获取标签的方法详解
Mar 22 PHP
Git命令之分支详解
Mar 02 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定义数组和使用示例(php数组的定义方法)
2014/03/29 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
Mootools 1.2教程 同时进行多个形变动画
2009/09/15 Javascript
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
2013/03/26 Javascript
showModalDialog模态对话框的使用详解以及浏览器兼容
2014/01/11 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
2014/09/04 Javascript
JavaScript操作DOM元素的childNodes和children区别
2015/04/01 Javascript
JavaScript通过事件代理高亮显示表格行的方法
2015/05/27 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
2015/09/26 Javascript
jQuery实现选项卡功能(两种方法)
2017/03/08 Javascript
Vue.js实战之组件之间的数据传递
2017/04/01 Javascript
用js将long型数据转换成date型或datetime型的实例
2017/07/03 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
JavaScript判断日期时间差的实例代码
2018/03/01 Javascript
react native 获取地理位置的方法示例
2018/08/28 Javascript
javascript中call,apply,bind的区别详解
2020/12/11 Javascript
python实现一次创建多级目录的方法
2015/05/15 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
2018/05/30 Python
python dataframe向下向上填充,fillna和ffill的方法
2018/11/28 Python
在python中按照特定顺序访问字典的方法详解
2018/12/14 Python
Python3实现取图片中特定的像素替换指定的颜色示例
2019/01/24 Python
对python3.4 字符串转16进制的实例详解
2019/06/12 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
2019/07/22 Python
在pytorch中为Module和Tensor指定GPU的例子
2019/08/19 Python
Python整数与Numpy数据溢出问题解决
2019/09/11 Python
Python大批量搜索引擎图像爬虫工具详解
2020/11/16 Python
环法自行车赛官方商店:Le Tour de France
2017/08/27 全球购物
亚洲航空公司官方网站:AirAsia
2019/11/25 全球购物
阳光体育活动方案
2014/02/16 职场文书
企业年会主持词
2014/03/27 职场文书
学生会宣传部部长竞选演讲稿
2014/04/25 职场文书
2014年员工工作总结范文
2014/11/18 职场文书
小学大队委竞选口号
2015/12/25 职场文书
python urllib库的使用详解
2021/04/13 Python
i5-10400f处理相当于i7多少水平
2022/04/19 数码科技