2013-05-30 19 views
0

條款我爲PHP如果循環沒有失敗,如果在PHP

if ($checkimghash != $imghash) 
{ 

the $checkimghash is var_dumped as this array(2) { [0]=> string(40) "da77c24758c6259274bfa171a32d5c4a4a2cb71c" ["PdfHash"]=> string(40) "da77c24758c6259274bfa171a32d5c4a4a2cb71c", the variable $imghash var_dumps as this 
string(40) "da77c24758c6259274bfa171a32d5c4a4a2cb71c, 

下面的代碼爲什麼會這樣檢查,儘管平等的結果運行?我想!=需要通過這兩個類型和值檢查

+0

你可以編輯你的var_dump結果嗎?現在還不清楚。 – kevinamadeus

回答

0

因爲你是比較數組爲字符串,他們是不一樣的

嘗試將您的測試更改爲

if ($checkimghash[0] != $imghash) 
0

!=是值,!==是值和類型

+0

在這種情況下,這沒有任何意義。 –

0

!=僅比較該值。它的對面是==

TRUE如果$ a不等於$ b型雜耍之後。

!==正在比較值和類型。它的對面是===

TRUE如果$ a不等於$ b,或者它們是同一類型的不是。

來源:http://www.php.net/manual/en/language.operators.comparison.php

編輯

var_dump結果在你的問題還不清楚。如果您將數組與字符串進行比較,那麼它們總是不同的。您可能希望通過$array[0]

+0

這是無關緊要的。 –

0

與另一個字符串數組的元素的值進行比較,因爲如果$checkimghash是一個數組,$imghash一個字符串,則兩者不會直接比較(在任何意義上),因爲你」重新比較一個數組(即一串字符串)與一個字符串!選擇你想要比較的數組元素並在條件中使用它。