php对象数组转数组_PHP对象转换为数组array(object) 数组值读取

感觉还是用 ArrayAccess 吧, 最简单的数组形式访问对象,直接在你的类上实现该接口。反射之类的用在这有点怪怪的呢、

class Obj implements \ArrayAccess

{

}

\ArrayAccess 接口的结构,你的类必须要实现这些方法。

ArrayAccess {

/* 方法 */

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 )

}

小示例、

class Obj implements \ArrayAccess

{

protected $_data = 'data aaa';

/**

* 检查数组键是否存在,本例中对象成员就是数组元素、

* 对一个实现了 ArrayAccess 接口的对象使用 isset() 或 empty() 时,此方法将执行。

* ~~~

* $obj = new Obj();

* var_dump(isset($obj['_data']));

* ~~~

* @param mixed $offset 要检查的键名

* @return boolean

*/

public function offsetExists($offset) {

return array_key_exists($offset, get_object_vars($this));

}

/**

* 检查数组键是否存在,在本例中我们把键设置为

* 对一个实现了 ArrayAccess 接口的对象使用 isset() 或 empty() 时,此方法将执行。

* ~~~

* $obj = new Obj();

* unset($obj['_data']);

* var_dump(isset($obj['_data']));

* ~~~

* @param mixed $offset 要检查的键名

* @return boolean

*/

public function offsetUnset($key) {

if (array_key_exists($key,get_object_vars($this)) ) {

unset($this->{$key});

}

}

/**

* 累了不写了这个是设置数组成员,本例中就是对象属性、

*/

public function offsetSet($offset, $value) {

$this->{$offset} = $value;

}

public function offsetGet($var) {

return $this->$var;

}

}

$obj = new Obj();

echo $obj['_data'];

不好意思,回答时激情满满,写几行就枯燥了、后俩没注释你自己翻资料去吧、

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值