我偶然发现了以下代码:
in_array(($_GET['some_value']??-1),[])
我在理解它时遇到了一些麻烦。我的问题如下:
??
运算符是什么意思?我的经验告诉我,这类似于空合并,但我不确定。in_array
是一个空数组,haystack
会做什么?同样,似乎它总是返回FALSE
,但是我是PHP新手,所以我想对此进行确认。答案 0 :(得分:3)
该表达式可以替换为
false
使用空数组作为第二个参数调用in_array
总是返回false
,因此$_GET['some_value']
是否存在,它是否存在,或最终它会被空合并运算符替换为负数。
在空数组中找不到任何内容。可能是错误或者是混淆的尝试。
答案 1 :(得分:1)
实际上,双重问号是null合并运算符,是PHP 7中的新增功能: http://php.net/manual/de/migration70.new-features.php
如果干草堆是一个空数组,in_array()将返回false,实际上,如果在干草堆中找到了针,它只会返回TRUE。在此处阅读文档: