参数中的in_array“或”运算符

时间:2015-12-01 17:15:34

标签: php

今天,当我阅读文档时,我已经看到某个地方看起来像这样的in_array('value1' || 'value2', $my_array),所以我尝试了,因为科学。它的工作原理!为什么?它背后真的如何运作?

1 个答案:

答案 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中进行空合并。我将假设代码是对语言的误解,因为它没有'看起来很有用甚至有意义。