为什么false [0]不会为未定义的偏移量引发错误?

时间:2019-10-10 04:10:35

标签: php php-7.1

为什么false [0]不会引发undefined offset错误? (我应该指望这种行为)

背景故事

我正在将Vuetify数据表组件的options对象发送到php后端。后端是slim3。

我注意到sortDesc的查询参数看起来像:api/search/order?sortDesc[]=true

我什至不知道您可以在URL参数中传递数组!这是一个数组,因为可以进行多重排序,但是我永远不会使用它。嗯,共有三种可能性:sortDesc[0]=truesortDesc[0]=falsesortDesc根本不存在。我发现对代码进行如下更改以查看参数的零索引后,该参数可能不存在:

$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]

我找不到任何文档或详细描述此行为,并且想知道是否有人煽动。特别是我是否应该依靠这种行为。

0 个答案:

没有答案