今天,当我阅读文档时,我已经看到某个地方看起来像这样的in_array('value1' || 'value2', $my_array)
,所以我尝试了,因为科学。它的工作原理!为什么?它背后真的如何运作?
答案 0 :(得分:3)
$array = array(2, 3, 4);
var_dump('value1' || 'value2');
var_dump(in_array('value1' || 'value2', $array));
它不那么不寻常。
'value1' || 'value2'
是true
弱平等。
array(2, 3, 4)
包含弱同等性的true
值。
因此,这证明in_array
执行弱比较。谢谢,我必须记住这一点,因为我一直都在使用该功能。
在Javascript 'value1' || 'value2'
中会返回value1
,因为在此上下文中它是“空合并运算符”。
PHP等价物是'value1' ?: 'value2'
来比较条件与布尔值,或'value1' ?? 'value2'
用于在PHP 7中进行空合并。我将假设代码是对语言的误解,因为它没有'看起来很有用甚至有意义。