zoukankan      html  css  js  c++  java
  • PHP的ArrayAccess接口介绍

    在 PHP5 中多了一系列新接口。在 HaoHappy 翻译的你可以了解到他们的应用。同时这些接口和一些实现的 Class 被归为 Standard PHP Library(SPL)。在 PHP5 中加入了很多特性,使类的重载 (Overloading) 得到进一步的加强。ArrayAccess 的作用是使你的 Class 看起来像一个数组(PHP 的数组)。这点和 C# 的 Index 特性很相似。

    下面是 ArrayAccess 的定义:

    interface ArrayAccess

    • boolean offsetExists($index)

    • mixed offsetGet($index)

    • void offsetSet($index, $newvalue)

    • void offsetUnset($index)

    由于PHP的数组的强大,很多人在写 PHP 应用的时候经常将配置信息保存在一个数组里。于是可能在代码中到处都是 global。我们换种方式?

    class Configuration implements ArrayAccess {
    
        static private $config;
        private $configarray;
    
        private function __construct() {
            // init
            $this->configarray = array("Binzy" => "Male", "Jasmin" => "Female");
        }
    
        public static function instance() {
            //
            if (self::$config == null) {
                self::$config = new Configuration();
            }
            return self::$config;
        }
        //检查一个偏移位置是否存在
        function offsetExists($index) {
            return isset($this->configarray[$index]);
        }
        //获取一个偏移位置的值
        function offsetGet($index) {
            return $this->configarray[$index];
        }
        //设置一个偏移位置的值
        function offsetSet($index, $newvalue) {
            $this->configarray[$index] = $newvalue;
        }
        //复位一个偏移位置的值
        function offsetUnset($index) {
            unset($this->configarray[$index]);
        }
    
    }
    
    $config = Configuration::instance();
    print_r($config);
    echo "<br/>";
    echo $config['Binzy'];
    echo "<br/>";
    $config['Binzy'] = '1222';
    echo $config['Binzy'];
  • 相关阅读:
    产品交付物
    Java对redis的基本操作
    SourceTree使用方法
    分享几套bootstrap后台模板【TP5版】
    ThinkPHP5在PHP7以上使用QueryList4, ThinkCMF在PHP5中使用QueryList3教程
    delphi 控件背景透明代码
    delphi 程序嵌入桌面效果的实现
    delphi 半透明窗体类
    delphi 一个关于xml文件导入数据库的问题
    Delphi 自带了 Base64 编解码的单元
  • 原文地址:https://www.cnblogs.com/phpfans/p/4307204.html
Copyright © 2011-2022 走看看