php 以数组形式访问对象
Posted BurningChen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 以数组形式访问对象相关的知识,希望对你有一定的参考价值。
官方文档上:
ArrayAccess { /* Methods */ abstract public boolean offsetExists ( mixed $offset ) abstract public mixed offsetGet ( mixed $offset ) abstract public void offsetSet ( mixed $offset , mixed $value ) abstract public void offsetUnset ( mixed $offset ) }
实现上面的方法,下面举个实例
<?php /** * Created by PhpStorm. * User: wangHan * Date: 2016/10/21 * Time: 14:07 */ class Human implements ArrayAccess { private $elements; public function __construct() { $this->elements = [ "boy" => "male", "girl" => "female" ]; } public function offsetExists($offset) { // TODO: Implement offsetExists() method. return isset($this->elements[$offset]); } public function offsetGet($offset) { // TODO: Implement offsetGet() method. return $this->elements[$offset]; } public function offsetSet($offset, $value) { // TODO: Implement offsetSet() method. $this->elements[$offset] = $value; } public function offsetUnset($offset) { // TODO: Implement offsetUnset() method. unset($this->elements[$offset]); } } $human = new Human(); $human[‘people‘] = "boyAndGirl"; ////自动调用offsetSet if(isset($human[‘people‘])) { ////自动调用offsetExists echo $human[‘boy‘];//自动调用offsetGet echo ‘<br />‘; unset($human[‘boy‘]);//自动调用offsetUnset var_dump($human[‘boy‘]); } // // 输出结果 male null
<?php /** * Created by PhpStorm. * User: wangHan * Date: 2016/10/21 * Time: 14:07 */class Human implements ArrayAccess {private$elements; publicfunction __construct() {$this->elements = [ "boy" => "male", "girl" => "female" ]; } publicfunction offsetExists($offset) {// TODO: Implement offsetExists() method.returnisset($this->elements[$offset]); } publicfunction offsetGet($offset) {// TODO: Implement offsetGet() method.return$this->elements[$offset]; } publicfunction offsetSet($offset, $value) {// TODO: Implement offsetSet() method.$this->elements[$offset] = $value; } publicfunction offsetUnset($offset) {// TODO: Implement offsetUnset() method.unset($this->elements[$offset]); } } $human = new Human(); $human[‘people‘] = "boyAndGirl"; ////自动调用offsetSetif(isset($human[‘people‘])) { ////自动调用offsetExistsecho$human[‘boy‘];//自动调用offsetGetecho‘<br />‘; unset($human[‘boy‘]);//自动调用offsetUnset var_dump($human[‘boy‘]); } // // 输出结果 male null
以上是关于php 以数组形式访问对象的主要内容,如果未能解决你的问题,请参考以下文章
错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”