热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

1ArrayAccess(数组式访问)接口

:本篇文章主要介绍了1ArrayAccess(数组式访问)接口,对于PHP教程有兴趣的同学可以参考一下。
如果想让对象使用起来像一个PHP数组,那么我们需要实现ArrayAccess接口。

ArrayAccess是一个interface,实现这个interface,必须要实现以下几个方法:
1ArrayAccess(数组式访问)接口

interfaceArrayAccess
{//标示一个元素是否定义publicfunctionoffsetExists($offset);//返回一个元素值publicfunctionoffsetGet($offset);//为一个元素赋值publicfunctionoffsetSet($offset,$value);//删除一个元素值publicfunctionoffsetUnset($offset);
}

实现:

classTestimplementsArrayAccess
{private$elements = array();

    //标示一个元素是否定义publicfunctionoffsetExists($offset)
    {returnisset($this->elements[$offset]);
    }

    //返回一个元素值publicfunctionoffsetGet($offset)
    {return$this->elements[$offset];
    }

    //为一个元素赋值publicfunctionoffsetSet($offset,$value)
    {$this->elements[$offset] = $value;
    }

    //删除一个元素值publicfunctionoffsetUnset($offset)
    {unset($this->elements[$offset]);
    }
}

$test = new Test();
$test['test'] = 'test';//自动调用offsetSetif(isset($test['test']))//自动调用offsetExists
{
    echo$test['test'];//自动调用offsetGetecho'
'
; unset($test['test']);//自动调用offsetUnset var_dump($test['test']); }

classobjimplementsArrayAccess
{private$container = array();

    publicfunction__construct()
    {$this->cOntainer= array(
            'one' => 1,
            'tow' => 2,
            'three' => 3,
        );
    }

    publicfunctionoffsetGet($offset)
    {returnisset($this->container[$offset]) ? $this->container[$offset] : null;
    }

    publicfunctionoffsetSet($offset,$value)
    {if (is_null($offset)){
            $this->cOntainer= $value;
        }else{
            $this->container[$offset] = $value;
        }
    }

    publicfunctionoffsetExists($offset)
    {returnisset($this->container[$offset]);
    }

    publicfunctionoffsetUnset($offset)
    {unset($this->container[$offset]);
    }
}

$obj = new obj;

var_dump(isset($obj["two"])); // 调用 offsetExists
var_dump($obj["two"]); //调用 offsetGetunset($obj["two"]); //调用 offsetUnset
var_dump(isset($obj["two"]));// 调用 offsetExists$obj["two"] = "A value";  // 调用 offsetSet
var_dump($obj["two"]); //调用 offsetGet$obj[] = 'Append 1';
$obj[] = 'Append 2';
$obj[] = 'Append 3';
print_r($obj);

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $numbering.fadeIn(1700); }); });

    以上就介绍了1ArrayAccess(数组式访问)接口,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

  • 推荐阅读
    • 本文对宋代著名诗人吕渭老的作品《情久长》进行了细致的翻译和赏析,深入探讨了诗中蕴含的情感与艺术特色。 ... [详细]
    • 本文详细介绍如何安装和配置DedeCMS的移动端站点,包括新版本安装、老版本升级、模板适配以及必要的代码修改,以确保移动站点的正常运行。 ... [详细]
    • 最适合初学者的编程语言
      本文探讨了适合编程新手的最佳语言选择,包括Python、JavaScript等易于上手且功能强大的语言,以及如何通过有效的学习方法提高编程技能。 ... [详细]
    • 3DSMAX制作超现实的体育馆模型
      这篇教程是向脚本之家的朋友介绍3DSMAX制作超现实的体育馆模型方法,教程制作出来的体育馆模型非常地不错,不过教程有点难度,需要有一定基础的朋友学习,推荐到脚本之家,喜欢的朋友可 ... [详细]
    • 本文介绍了如何在AngularJS应用中使用ng-repeat指令创建可单独点击选中的列表项,并详细描述了实现这一功能的具体步骤和代码示例。 ... [详细]
    • 如何辨别华为手机的不同屏幕分辨率?
      了解华为手机屏幕分辨率的区别及其识别方法对于提升用户体验至关重要。本文将详细介绍如何通过手机设置中的显示选项来查看和区分不同型号华为手机的屏幕分辨率。 ... [详细]
    • 本文详细介绍了使用MAX7219芯片驱动单个8x8 LED点阵的仿真过程。MAX7219作为一款高效的LED显示驱动器,广泛应用于各种工业控制面板、商业广告牌及DIY项目中,能够显著提升显示效果。 ... [详细]
    • Unity美洲技术总监Carl Callewaert探讨游戏引擎与动作捕捉技术
      Carl Callewaert,现任Unity美洲区技术总监,以其幽默和专业著称,拥有超过十年的游戏开发及教育经验。在UNITE 2016 Shanghai会议中,他不仅展示了Unity引擎的先进特性和最新研究进展,还以其独特的即兴说唱技能给观众留下了深刻印象。 ... [详细]
    • 在项目冲刺的最后一天,团队专注于软件用户界面的细节优化,包括调整控件布局和字体设置,以确保界面的简洁性和用户友好性。 ... [详细]
    • 本文对唐代诗人元稹的《月三十韵》进行了详尽的翻译与赏析,深入探讨了诗中的意境与艺术特色。 ... [详细]
    • JavaScript 页面卸载事件详解 (onunload)
      当用户从页面离开时(如关闭页面或刷新页面),会触发 onunload 事件,此时可以执行预设的脚本。需要注意的是,不同的浏览器对 onunload 事件的支持程度可能有所不同。 ... [详细]
    • 本文详细解析了MySQL中常见的几种错误,并提供了具体的解决方法,帮助开发者快速定位和解决问题。 ... [详细]
    • 项目经理的角色与职责解析
      本文探讨了项目经理的核心职责,结合个人项目管理和PMBOK指南的经验,深入分析了项目管理的基本概念及其与运维、战略规划之间的关系。 ... [详细]
    • 默认情况下,Git 使用 Nano 编辑器进行提交信息的编辑,但如果您更喜欢使用 Vim,可以通过简单的配置更改来实现这一变化。本文将指导您如何通过修改全局配置文件来设置 Vim 作为默认的 Git 提交编辑器。 ... [详细]
    • 探索Java 11中的ZGC垃圾收集器
      Java 11引入了一种新的垃圾收集器——ZGC,由Oracle公司研发,旨在支持TB级别的内存容量,并保证极低的暂停时间。本文将探讨ZGC的开发背景、技术特点及其潜在的应用前景。 ... [详细]
    author-avatar
    DiKi造型Alen老师
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有