为什么false [0]不会引发undefined offset
错误?
(我应该指望这种行为)
背景故事
我正在将Vuetify数据表组件的options
对象发送到php后端。后端是slim3。
我注意到sortDesc的查询参数看起来像:api/search/order?sortDesc[]=true
我什至不知道您可以在URL参数中传递数组!这是一个数组,因为可以进行多重排序,但是我永远不会使用它。嗯,共有三种可能性:sortDesc[0]=true
,sortDesc[0]=false
和sortDesc
根本不存在。我发现对代码进行如下更改以查看参数的零索引后,该参数可能不存在:
$options['orderDir'] = $request->
getQueryParam('sortDesc', $default = false)[0] ? 'DESC' : 'ASC';
我意识到这不是执行此参数初始化/检查的最佳方法,但是现在我想知道为什么在不存在该参数的情况下我没有得到异常,所以我做了一个测试,代码echo false[0];
,而且肯定没有错误。
这些也不会引发错误
echo 'some thing' . false[0]
echo 'some thing' . false[20]
echo false[-10]
echo 'some thing' . true[0]
我找不到任何文档或详细描述此行为,并且想知道是否有人煽动。特别是我是否应该依靠这种行为。