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的list()的一步操作给一组变量进行赋值的使用
May 18 PHP
一致性哈希算法以及其PHP实现详细解析
Aug 24 PHP
php中session退出登陆问题
Feb 27 PHP
php数组中删除元素之重新索引的方法
Sep 16 PHP
php连接与操作PostgreSQL数据库的方法
Dec 25 PHP
php实现只保留mysql中最新1000条记录
Jun 18 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
Jun 23 PHP
PHP通过加锁实现并发情况下抢码功能
Aug 10 PHP
[原创]php实现 data url的图片生成与保存
Dec 04 PHP
PHP中的empty、isset、isnull的区别与使用实例
Mar 22 PHP
基于laravel Request的所有方法详解
Sep 29 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的password_hash()使用实例
2014/03/17 PHP
php数组键名技巧小结
2015/02/17 PHP
PHP 根据key 给二维数组分组
2016/12/09 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
2017/03/17 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
js 新浪的一个图片播放图片轮换效果代码
2008/07/15 Javascript
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
2020/04/04 Javascript
jQuery替换字符串(实例代码)
2013/11/13 Javascript
改变隐藏的input中value值的方法
2014/03/19 Javascript
js控制输入框获得和失去焦点时状态显示的方法
2015/01/30 Javascript
Vue.js快速入门教程
2016/09/07 Javascript
jQuery EasyUI 组件加上“清除”功能实例详解
2017/04/11 jQuery
取消Bootstrap的dropdown-menu点击默认关闭事件方法
2018/08/10 Javascript
详解ES6 系列之异步处理实战
2018/10/26 Javascript
快速了解Node中的Stream流是什么
2019/02/13 Javascript
小程序自定义单页面、全局导航栏的实现代码
2019/03/15 Javascript
自动化Nginx服务器的反向代理的配置方法
2015/06/28 Python
Python的Flask站点中集成xhEditor文本编辑器的教程
2016/06/13 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
2017/01/24 Python
python自动发送邮件脚本
2018/06/20 Python
python字符串判断密码强弱
2020/03/18 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
CSS3中box-shadow的用法介绍
2015/07/15 HTML / CSS
家长写给老师的建议书
2014/03/13 职场文书
小学生演讲稿大全
2014/04/25 职场文书
婚礼秀策划方案
2014/05/19 职场文书
2014年教师党员公开承诺书
2014/05/28 职场文书
学生旷课检讨书500字
2014/10/28 职场文书
清明节扫墓活动总结
2015/02/09 职场文书
2015年医德考评自我评价
2015/03/03 职场文书
飞越疯人院观后感
2015/06/09 职场文书
8个JS的reduce使用实例和reduce操作方式
2021/10/05 Javascript
漫画「请问您今天要来点兔子吗?」最新杂志彩页公开
2022/03/24 日漫
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby
HTML页面点击按钮关闭页面的多种方式
2022/12/24 HTML / CSS