我想知道,Flight framework如何在运行时避免未定义的索引错误?
例如,
$result = Flight::request()->query['no_such_key'];
只会返回$result
,empty($result)
将为真。
但是,如果我使用自己的数组,我会得到未定义索引
$result = $array['no_such_key'];
我可以知道Flight正在使用什么技术吗?
答案 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接口。