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学习教程之第1天
Jun 15 PHP
PHP 网页过期时间的控制代码
Jun 29 PHP
PHP 中检查或过滤IP地址的实现代码
Nov 27 PHP
php错误、异常处理机制(补充)
May 07 PHP
迅速确定php多维数组的深度的方法
Jan 07 PHP
dedecms集成财付通支付接口
Dec 28 PHP
php+mysql实现无限级分类
Nov 11 PHP
100行PHP代码实现socks5代理服务器
Apr 28 PHP
php自定义函数转换html标签示例
Sep 29 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
Apr 18 PHP
php数据序列化测试实例详解
Aug 12 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
May 09 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
url decode problem 解决方法
2011/12/26 PHP
推荐5款跨平台的PHP编辑器
2014/12/25 PHP
php实现获取文件mime类型的方法
2015/02/11 PHP
PHP中empty,isset,is_null用法和区别
2017/02/19 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
2017/08/03 PHP
Laravel实现批量更新多条数据
2020/04/06 PHP
JavaScript 指导方针
2007/04/05 Javascript
js简单实现用户注册信息的校验代码
2013/11/15 Javascript
关闭页面window.location事件未执行的原因及解决方法
2014/09/01 Javascript
Javascript基础教程之变量
2015/01/18 Javascript
jquery实现勾选复选框触发事件给input赋值
2015/02/01 Javascript
jQuery实现简单的文件上传进度条效果
2020/03/26 Javascript
Javascript的表单与验证-非空验证
2016/03/18 Javascript
个人网站留言页面(前端jQuery编写、后台php读写MySQL)
2016/05/03 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
常用的javascript设计模式
2017/01/11 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
nuxt.js中间件实现拦截权限判断的方法
2018/11/21 Javascript
vue下拉菜单组件(含搜索)的实现代码
2018/11/25 Javascript
详解JS实现系统登录页的登录和验证
2019/04/29 Javascript
vue父子组件通信的高级用法示例
2019/08/29 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
python操作xml文件示例
2014/04/07 Python
Python寻找两个有序数组的中位数实例详解
2018/12/05 Python
Python安装selenium包详细过程
2019/07/23 Python
python 将视频 通过视频帧转换成时间实例
2020/04/23 Python
英国婚礼商城:Wedding Mall
2019/11/02 全球购物
高级3D打印市场:Gambody
2019/12/26 全球购物
职工运动会邀请函
2014/02/02 职场文书
捐助贫困学生倡议书
2014/05/16 职场文书
大学生村官座谈会发言材料
2014/05/25 职场文书
企业晚会策划方案
2014/05/29 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
小学运动会宣传稿
2015/07/23 职场文书
Python图片处理之图片裁剪教程
2021/05/27 Python
MySQL5.7并行复制原理及实现
2021/06/03 MySQL