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显示今天、今月、上月、今年的起点/终点时间戳的代码
May 25 PHP
PHP持久连接mysql_pconnect()函数使用介绍
Feb 05 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
Mar 01 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
Oct 05 PHP
PHP实现删除字符串中任何字符的函数
Aug 11 PHP
php简单压缩css样式示例
Sep 22 PHP
php 多文件上传的实现实例
Oct 23 PHP
php使用GD2绘制几何图形示例
Feb 15 PHP
Laravel框架FormRequest中重写错误处理的方法
Feb 18 PHP
Laravel+Intervention实现上传图片功能示例
Jul 09 PHP
Yii框架参数配置文件params用法实例分析
Sep 11 PHP
PHP7移除的扩展和SAPI
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
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
2016/09/09 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
使用Rancher在K8S上部署高性能PHP应用程序的教程
2020/07/10 PHP
统计jQuery中各字符串出现次数的工具
2012/05/03 Javascript
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
JS对img进行操作(换图片/切图/轮换/停止)
2013/04/17 Javascript
Jquery如何实现点击时高亮显示代码
2014/01/22 Javascript
JS实现简洁、全兼容的拖动层实例
2015/05/13 Javascript
实例讲解使用原生JavaScript处理AJAX请求的方法
2016/05/10 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
2016/09/14 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
详解如何在vue-cli中使用vuex
2018/08/07 Javascript
Vue scoped及deep使用方法解析
2020/08/01 Javascript
Vue实现导航栏菜单
2020/08/19 Javascript
html中创建并调用vue组件的几种方法汇总
2020/11/17 Javascript
python正则表达式抓取成语网站
2013/11/20 Python
python中从str中提取元素到list以及将list转换为str的方法
2018/06/26 Python
Django中使用第三方登录的示例代码
2018/08/20 Python
在Python中通过getattr获取对象引用的方法
2019/01/21 Python
Django框架登录加上验证码校验实现验证功能示例
2019/05/23 Python
在PyTorch中Tensor的查找和筛选例子
2019/08/18 Python
PYTHON绘制雷达图代码实例
2019/10/15 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
基于Python的接口自动化读写excel文件的方法
2021/01/15 Python
pycharm配置安装autopep8自动规范代码的实现
2021/03/02 Python
支持IE8的纯css3开发的响应式设计动画菜单教程
2014/11/05 HTML / CSS
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
几个常见的软件测试问题
2016/09/07 面试题
电子商务专业学生的自我鉴定
2013/11/28 职场文书
同学聚会欢迎辞
2014/01/14 职场文书
致1500米运动员广播稿
2014/02/07 职场文书
大学生求职工作的自我评价
2014/02/13 职场文书
文艺晚会策划方案
2014/06/11 职场文书
运动会1000米加油稿
2015/07/21 职场文书
2015年防灾减灾工作总结
2015/07/24 职场文书
Python基础之教你怎么在M1系统上使用pandas
2021/05/08 Python