主页 > 知识库 > PHP容器类的两种实现方式示例

PHP容器类的两种实现方式示例

热门标签:怎么向销售公司推销外呼系统 江西手机自动外呼防封系统是什么 广东地市地图标注 哪里办理400电话 长春人工外呼系统服务商 高德地图标注家 广州防封卡外呼系统多少钱一个月 仁和怎么申请400开头的电话 外呼系统拨打暂时无法接通

本文实例讲述了PHP容器类的两种实现方式。分享给大家供大家参考,具体如下:

通过魔术方法实现

class

class MagicContainer{
  private $ele;
  function __construct()
  {
    $this->ele = [];
  }
  function __set($name, $value)
  {
    $this->ele[$name] = $value;
  }
  function __get($name)
  {
    return $this->ele[$name];
  }
  function __isset($name)
  {
    return isset($this->ele[$name]);
  }
  function __unset($name)
  {
    if(isset($this->ele[$name])){
      unset($this->ele[$name]);
    }
  }
}

usage

$container = new MagicContainer();
$container->logger = function ($msg){
  file_put_contents('info.log',$msg.PHP_EOL,FILE_APPEND);
};
$logger = $container->logger;
$logger('magic container works');

通过ArrayAccess接口实现

class

class ArrayContainer implements ArrayAccess {
  private $elements;
  public function __construct()
  {
    $this->elements = [];
  }
  public function offsetExists($offset){
    return isset($this->elements[$offset]);
  }
  public function offsetGet($offset){
    if($this->offsetExists($offset)){
      return $this->elements[$offset];
    }else{
      return false;
    }
  }
  public function offsetSet($offset, $value){
    $this->elements[$offset] = $value;
  }
  public function offsetUnset($offset){
    if($this->offsetExists($offset)){
      unset($this->elements[$offset]);
    }
  }
}

usage

$container = new ArrayContainer();
$container['logger'] = function ($msg){
  file_put_contents('info.log',$msg.PHP_EOL,FILE_APPEND);
};
$logger = $container['logger'];
$logger('array container works');

Container

class

class Container implements ArrayAccess {
  private $elements;
  public function __construct()
  {
    $this->elements = [];
  }
  public function offsetExists($offset){
    return isset($this->elements[$offset]);
  }
  public function offsetGet($offset){
    if($this->offsetExists($offset)){
      return $this->elements[$offset];
    }else{
      return false;
    }
  }
  public function offsetSet($offset, $value){
    $this->elements[$offset] = $value;
  }
  public function offsetUnset($offset){
    if($this->offsetExists($offset)){
      unset($this->elements[$offset]);
    }
  }
  function __set($name, $value)
  {
    $this->elements[$name] = $value;
  }
  function __get($name)
  {
    return $this->elements[$name];
  }
  function __isset($name)
  {
    return isset($this->elements[$name]);
  }
  function __unset($name)
  {
    if(isset($this->elements[$name])){
      unset($this->elements[$name]);
    }
  }
}

usage

$container = new Container();
$container['logger'] = function ($msg){
  file_put_contents('info.log',$msg.PHP_EOL,FILE_APPEND);
};
$logger = $container->logger;
$logger('container works');

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:
  • PHP 应用容器化以及部署方法
  • 深入理解 PHP7 中全新的 zval 容器和引用计数机制
  • PHP解耦的三重境界(浅谈服务容器)
  • PHP实现一个轻量级容器的方法
  • PHP进阶学习之依赖注入与Ioc容器详解
  • php 接口类与抽象类的实际作用
  • php接口和抽象类使用示例详解
  • PHP调用wsdl文件类型的接口代码分享
  • PHP生成json和xml类型接口数据格式
  • PHP中抽象类、接口的区别与选择分析

标签:惠州 海北 梅河口 文山 黔东 濮阳 湘西 厦门

巨人网络通讯声明:本文标题《PHP容器类的两种实现方式示例》,本文关键词  PHP,容器,类,的,两种,实现,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《PHP容器类的两种实现方式示例》相关的同类信息!
  • 本页收集关于PHP容器类的两种实现方式示例的相关信息资讯供网民参考!
  • 推荐文章