2015-12-01 33 views
0

今天,在我閱讀文檔時,我看到某個地方看起來像這樣in_array('value1' || 'value2', $my_array),所以我嘗試了科學。它的工作原理!爲什麼?這究竟是如何工作的?in_array「或」參數中的操作符

回答

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.我會假設代碼合併是一個誤解的語言,因爲它看起來並不實用,甚至意義。

+0

so''value1'|| 'value2'將始終爲真,因爲字符串在布爾值中被評估爲true? – Andrew

+0

因爲他們是不斷的字符串是的。如果它們都是空字符串,它會返回'false'。 – Flosculus

+0

明白了。謝謝! – Andrew