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中for与foreach的区别分析
Mar 09 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
Jun 30 PHP
php中数组首字符过滤功能代码
Jul 31 PHP
hadoop常见错误以及处理方法详解
Jun 19 PHP
windows中为php安装mongodb与memcache
Jan 06 PHP
Laravel 5 框架入门(四)完结篇
Apr 09 PHP
PHP MVC框架skymvc支持多文件上传
May 26 PHP
php实用代码片段整理
Nov 12 PHP
php实现和c#一致的DES加密解密实例
Jul 24 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
Laravel路由研究之domain解决多域名问题的方法示例
Apr 04 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
Apr 10 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 foreach 使用&amp;(与运算符)引用赋值要注意的问题
2010/02/16 PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
2011/07/17 PHP
php+iframe实现隐藏无刷新上传文件
2012/02/10 PHP
克隆一个新项目的快捷方式
2013/04/10 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
PHP查询大量数据内存耗尽问题的解决方法
2016/10/28 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
Yii 2.0自带的验证码使用经验分享
2017/06/19 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
JavaScript游戏之是男人就下100层代码打包
2010/11/08 Javascript
js 通用订单代码
2013/12/23 Javascript
Javascript限制网页只能在微信内置浏览器中访问
2014/11/09 Javascript
利用jquery制作滚动到指定位置触发动画
2016/03/26 Javascript
Jquery 自定义事件实现发布/订阅的简单实例
2016/06/12 Javascript
jQuery ajaxSubmit 实现ajax提交表单局部刷新
2016/07/04 Javascript
NodeJS使用formidable实现文件上传
2016/10/27 NodeJs
jQuery实现移动端Tab选项卡效果
2017/03/15 Javascript
配置nodejs环境的方法
2017/05/13 NodeJs
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
Angular2关于@angular/cli默认端口号配置的问题
2017/07/15 Javascript
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
2017/09/28 Javascript
nuxt+axios解决前后端分离SSR的示例代码
2017/10/24 Javascript
jquery 获取索引值在一定范围的列表方法
2018/01/25 jQuery
layui实现数据表格隐藏列的示例
2019/10/25 Javascript
[54:29]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第二场
2018/04/09 DOTA
简单介绍Ruby中的CGI编程
2015/04/10 Python
Python实现账号密码输错三次即锁定功能简单示例
2019/03/29 Python
Django中Q查询及Q()对象 F查询及F()对象用法
2020/07/09 Python
python实现图像外边界跟踪操作
2020/07/13 Python
python装饰器代码深入讲解
2021/03/01 Python
纯CSS3实现8组超炫酷鼠标滑过图片动画
2016/03/16 HTML / CSS
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
党员党性分析材料
2014/02/17 职场文书
德语专业求职信
2014/03/12 职场文书
HR在给员工开具离职证明时,需要注意哪些问题?
2019/07/03 职场文书
Python采集壁纸并实现炫轮播
2022/04/30 Python