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中使用Oracle数据库(6)
Oct 09 PHP
使用PHP的日期与时间函数技巧
Apr 24 PHP
PHP 创建文件(文件夹)以及目录操作代码
Mar 04 PHP
PHP中10个不常见却非常有用的函数
Mar 21 PHP
PHP 写文本日志实现代码
May 18 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
Sep 19 PHP
PHP empty函数报错解决办法
Mar 06 PHP
php中的curl使用入门教程和常见用法实例
Apr 10 PHP
Centos下升级php5.2到php5.4全记录(编译安装)
Apr 03 PHP
typecho插件编写教程(二):写一个新插件
May 28 PHP
PHP双向链表定义与用法示例
Jan 31 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 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中serialize序列化与json性能测试的示例分析
2013/04/27 PHP
PHP使用缓存即时输出内容(output buffering)的方法
2015/08/03 PHP
PHP如何实现跨域
2016/05/30 PHP
laravel 解决Validator使用中出现的问题
2019/10/25 PHP
ASP Json Parser修正版
2009/12/06 Javascript
jquery实现网页查找功能示例分享
2014/02/12 Javascript
JS交换变量的方法
2015/01/21 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
ES6中Symbol类型用法实例详解
2017/04/06 Javascript
全选复选框JavaScript编写小结(附代码)
2017/08/16 Javascript
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
JS实现点击链接切换显示隐藏内容的方法
2017/10/19 Javascript
javascript实现数字配对游戏的实例讲解
2017/12/14 Javascript
微信小程序—setTimeOut定时器的问题及解决
2019/07/26 Javascript
微信小程序云开发如何实现数据库自动备份实现
2019/08/16 Javascript
vue接通后端api以及部署到服务器操作
2020/08/13 Javascript
JS实现点击掉落特效
2021/01/29 Javascript
Nest.js散列与加密实例详解
2021/02/24 Javascript
[02:26]DOTA2英雄米拉娜基础教程
2013/11/25 DOTA
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
[03:23:49]2016.12.17日完美“圣”典全回顾
2016/12/19 DOTA
matplotlib简介,安装和简单实例代码
2017/12/26 Python
Python操作word常见方法示例【win32com与docx模块】
2018/07/17 Python
在python中按照特定顺序访问字典的方法详解
2018/12/14 Python
详解Python3序列赋值、序列解包
2019/05/14 Python
网易2016研发工程师编程题 奖学金(python)
2019/06/19 Python
使用Python+selenium实现第一个自动化测试脚本
2020/03/17 Python
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
美国最大的在线水培用品商店:GrowersHouse.com
2018/08/14 全球购物
班班通校本培训方案
2014/03/12 职场文书
优秀护士先进事迹
2014/05/08 职场文书
奥巴马开学演讲稿
2014/05/15 职场文书
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书
三行辞职书范文
2015/02/26 职场文书
小学作文之描写天气
2019/08/15 职场文书
前端框架ECharts dataset对数据可视化的高级管理
2022/12/24 Javascript