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世纪万年历
Dec 06 PHP
利用PHP扩展vld查看PHP opcode操作步骤
Mar 04 PHP
PHP goto语句简介和使用实例
Mar 11 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
Jun 10 PHP
codeigniter中view通过循环显示数组数据的方法
Mar 20 PHP
PHP中SESSION的注销与清除
Apr 16 PHP
PHP获得数组交集与差集的方法
Jun 10 PHP
Smarty变量用法详解
May 11 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
May 25 PHP
实例介绍PHP删除数组中的重复元素
Mar 03 PHP
Thinkphp极验滑动验证码实现步骤解析
Nov 24 PHP
Cookie跨域问题解决方案代码示例
Nov 24 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下使用SMTP发邮件的代码
2008/01/10 PHP
php disk_free_space 返回目录可用空间
2010/05/10 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
Linux系统递归生成目录中文件的md5的方法
2015/06/29 PHP
教你在header中隐藏php的版本信息
2016/08/10 PHP
详解php中 === 的使用
2016/10/24 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
iframe 父窗口和子窗口相互的调用方法集锦
2010/12/15 Javascript
得到form下的所有的input的js代码
2013/11/07 Javascript
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
纯js仿淘宝京东商品放大镜功能
2017/03/02 Javascript
详解jQuery中关于Ajax的几个常用的函数
2017/07/17 jQuery
angularjs 动态从后台获取下拉框的值方法
2018/08/13 Javascript
Angular6 用户自定义标签开发的实现方法
2019/01/08 Javascript
探究一道价值25k的蚂蚁金服异步串行面试题
2020/08/21 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
Python中如何优雅的合并两个字典(dict)方法示例
2017/08/09 Python
PyQt5每天必学之QSplitter实现窗口分隔
2018/04/19 Python
对Pycharm创建py文件时自定义头部模板的方法详解
2019/02/12 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
使用Python函数进行模块化的实现
2019/11/15 Python
Python3如何使用tabulate打印数据
2020/09/25 Python
HTML5新增的Css选择器、伪类介绍
2013/08/07 HTML / CSS
Reformation官网:美国女装品牌
2018/09/14 全球购物
英国蜡烛、蜡烛配件和家居香氛购买网站:Yankee Candle
2018/12/12 全球购物
linux面试题参考答案(10)
2013/11/04 面试题
儿科护理实习自我鉴定
2013/09/19 职场文书
治超工作实施方案
2014/05/04 职场文书
班级体育活动总结
2014/07/05 职场文书
学习“七一”讲话精神体会
2014/07/08 职场文书
2019秋季运动会口号
2019/06/25 职场文书
Pytorch 实现变量类型转换
2021/05/17 Python
Python 避免字典和元组的多重嵌套问题
2022/07/15 Python