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 相关文章推荐
php 文件上传实例代码
Apr 19 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
Jun 10 PHP
php+js实现图片的上传、裁剪、预览、提交示例
Aug 27 PHP
Php header()函数语法及使用代码
Nov 04 PHP
php用正则表达式匹配URL的简单方法
Nov 12 PHP
php采集内容中带有图片地址的远程图片并保存的方法
Jan 03 PHP
Yii数据模型中rules类验证器用法分析
Jul 15 PHP
Yii2中事务的使用实例代码详解
Sep 07 PHP
PHP实现的mysql主从数据库状态检测功能示例
Jul 20 PHP
PHP二维关联数组的遍历方式(实例讲解)
Oct 18 PHP
PHP设计模式之状态模式定义与用法详解
Apr 02 PHP
PHP使用phpunit进行单元测试示例
Sep 23 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
采用header定义为文件然后readfile下载(隐藏下载地址)
2014/01/31 PHP
PHP chop()函数讲解
2019/02/11 PHP
js中复制行和删除行的操作实例
2013/06/25 Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
2014/07/17 Javascript
javascript中字符串拼接详解
2014/09/26 Javascript
jQuery实现拖拽可编辑模块功能代码
2017/01/12 Javascript
layer弹出层框架alert与msg详解
2017/03/14 Javascript
基于vue中对鼠标划过事件的处理方式详解
2018/08/22 Javascript
基于axios 解决跨域cookie丢失的问题
2018/09/26 Javascript
js实现有趣的倒计时效果
2021/01/19 Javascript
Vue常用API、高级API的相关总结
2021/02/02 Vue.js
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
python中is与双等于号“==”的区别示例详解
2017/11/21 Python
Python一行代码实现快速排序的方法
2019/04/30 Python
python如何获取apk的packagename和activity
2020/01/10 Python
Jupyter加载文件的实现方法
2020/04/14 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
2020/09/01 Python
HTML5 video播放器全屏(fullScreen)方法实例
2015/04/24 HTML / CSS
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
美国专注于健康商品的网站:eVitamins
2017/01/23 全球购物
Fairyseason:为个人和批发商提供女装和配件
2017/03/01 全球购物
Tarte Cosmetics官网:美国最受欢迎的化妆品公司之一
2017/08/24 全球购物
世界经理人咨询有限公司面试
2014/09/23 面试题
九年级历史教学反思
2014/01/27 职场文书
幼儿园数学教学反思
2014/02/02 职场文书
4s店销售经理岗位职责
2014/07/19 职场文书
党员群众路线对照检查材料
2014/08/31 职场文书
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
党员干部批评与自我批评反四风思想汇报
2014/09/21 职场文书
2015年公司保安年终工作总结
2015/05/14 职场文书
欠款证明
2015/06/24 职场文书
爱岗敬业先进典型事迹材料(2016推荐版)
2016/02/26 职场文书
原生JS实现飞机大战小游戏
2021/06/09 Javascript
教你如何使用Python开发一个钉钉群应答机器人
2021/06/21 Python
HDFS免重启挂载新磁盘
2022/04/06 Servers