2012-12-13 73 views
2

可能重複:
Double equals and tripple equals in php新手 - PHP - 測試 '空' 字符串

我想測試對非空各種類型的 '空' 的變量。自帶了很多的一種情況是

如果一個字符串等於「‘’」(即兩個單引號字符),然後做 XYZ,否則做ABC

我有不同的變量類型,可以是0,'0'(即字符'0',ASCII 48,而不是0)和「」(空字符串)。所有這些評估與「」「相同,該字符串包含兩個單引號。顯然,他們不一樣!一個是兩個字符串 - ASCII 39,ASCII 39 - 其他可能是0,ASCII 48等。

我已經想出了使用is_numeric()等的變通方法,但我忍不住想着一定有更好的辦法。處理這類事情的首選方法是什麼?

非常感謝您的耐心配合,這似乎是一個非常天真的問題。

回答

1

如果你這樣做相同的檢查

if ($string === '') 

,那麼你將得到的結果你是經過。

有關運營商類型及其影響的更多詳細信息,請參見this previous SO answer

3

您可以使用相同的運算符(===)來檢查類型和值。 有關更多信息,請參閱http://php.net/manual/en/language.operators.comparison.php

+0

太棒了!也很簡單。非常感謝。我已經嘗試過empty(),但是正如上面提到的那樣,它在所有情況下都會返回true,但===似乎工作正常。 –

5

您還可以使用if(!empty($string))http://php.net/manual/en/function.empty.php瞭解更多信息。

+0

「if(!statement)」基本上是說「if not(statement)」 – Charles

+0

empty()與檢查給定變量是否等於「」不完全相同。如果給定數組爲空,字符串沒有內容,或給定變量包含數字零,則empty()也會返回TRUE。 –