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+SqlServer实现分页显示
Oct 09 PHP
用 PHP5 轻松解析 XML
Dec 04 PHP
php printf输出格式使用说明
Dec 05 PHP
php中邮箱地址正则表达式实现与详解
Apr 24 PHP
php中引用符号(&amp;)的使用详解
Nov 13 PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
Dec 25 PHP
Discuz7.2版的faq.php SQL注入漏洞分析
Aug 06 PHP
ZF框架实现发送邮件的方法
Dec 03 PHP
php结合md5实现的加密解密方法
Jan 25 PHP
php实用代码片段整理
Nov 12 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
Jan 17 PHP
PHP7 弃用功能
Mar 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
在线增减.htpasswd内的用户
2006/10/09 PHP
检测png图片是否完整的php代码
2010/09/06 PHP
php自动更新版权信息显示的方法
2015/06/19 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
2015/08/18 PHP
ThinkPHP框架里隐藏index.php
2016/04/12 PHP
详解PHP中的外观模式facade pattern
2018/02/05 PHP
js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)
2013/01/24 Javascript
jQuery取id有.的值的方法
2014/05/21 Javascript
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
2015/06/19 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
2016/06/25 Javascript
常见的浏览器Hack技巧整理
2017/06/29 Javascript
浅谈通过JS拦截 pushState和replaceState事件
2017/07/21 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
vue-router相关基础知识及工作原理
2018/03/16 Javascript
解决ant Design中Select设置initialValue时的大坑
2020/10/29 Javascript
jquery实现广告上下滚动效果
2021/03/04 jQuery
[03:48]显微镜下的DOTA2第四期——TP动作
2014/06/20 DOTA
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
python生成带有表格的图片实例
2019/02/03 Python
Python3多线程基础知识点
2019/02/19 Python
kafka-python 获取topic lag值方式
2019/12/23 Python
基于pygame实现童年掌机打砖块游戏
2020/02/25 Python
python中什么是面向对象
2020/06/11 Python
Python json解析库jsonpath原理及使用示例
2020/11/25 Python
美国杰西潘尼官网:JCPenney
2019/06/12 全球购物
家长给老师的道歉信
2014/01/13 职场文书
机电专业求职信
2014/06/14 职场文书
2014年团总支工作总结
2014/11/21 职场文书
2015年小学开学寄语
2015/02/27 职场文书
实施意见格式范本
2015/06/05 职场文书
公司员工管理制度
2015/08/04 职场文书
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL
APP界面设计技巧和注意事项
2022/04/29 杂记
MySQL数据库简介与基本操作
2022/05/30 MySQL