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'];
  • 相关阅读:
    Windows Store App 主题动画
    Windows Store App 过渡动画
    Windows Store App 控件动画
    Windows Store App 近期访问列表
    Windows Store App 文件选取器
    Windows Store App 访问应用内部文件
    Windows Store App 用户库文件分组
    Windows Store App 获取文件及文件夹列表
    Windows Store App 用户库文件夹操作
    Windows Store App 用户库文件操作
  • 原文地址:https://www.cnblogs.com/phpfans/p/4307204.html
Copyright © 2011-2022 走看看