Flight框架如何避免未定义的索引错误

时间:2013-12-12 08:01:32

标签: php

我想知道,Flight framework如何在运行时避免未定义的索引错误?

例如,

$result = Flight::request()->query['no_such_key'];

只会返回$resultempty($result)将为真。

但是,如果我使用自己的数组,我会得到未定义索引

$result = $array['no_such_key'];

我可以知道Flight正在使用什么技术吗?

2 个答案:

答案 0 :(得分:2)

Flight::request()->query不是数组object,它实现了arrayAccess interface

例如

class Dummy implements ArrayAccess {
    public function offsetExists ( $offset ){}
    public function offsetGet ( $offset ){return $offset;}
    public function offsetSet ( $offset, $value ){}
    public function offsetUnset ( $offset ){}
}

$dummy = new Dummy();

echo $dummy['any_index']; // produce 'any_index' without any errors

答案 1 :(得分:0)

看看这段代码:https://github.com/mikecao/flight/blob/master/flight/util/Collection.php,它实现了ArrayAccess接口。