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'];
  • 相关阅读:
    xiaopiu产品原型设计与团队实时协作平台
    asp.net webform过滤器(注意我们可以在拦截请求的同时设置回调函数)
    wdScrollTab
    pageoffice实现网页打开编辑保存word文档(基于SSM框架)
    ESB企业服务总线
    JRebel for IntelliJ
    dtcms 手机浏览
    maven仓库添加jar架包
    shell脚本实现FTP自动上传文件
    mysql创建数据库指定字符集
  • 原文地址:https://www.cnblogs.com/phpfans/p/4307204.html
Copyright © 2011-2022 走看看