2011-04-28 36 views
2

如何編寫一個if條件將評估爲零不空?我正在編寫一個驗證腳本,如果該字段爲空,我會拋出一個錯誤。如果選擇的數值以0(零)開頭,則不應將其視爲空白。該手冊指出字符串0被認爲是空的並返回false。如果我將空變爲!isset,則零可以工作,但其他真正爲空的文本框會通過驗證。我怎麼寫這個來處理我的情況?空和零作爲字符串

+0

爲什麼不先做字符串比較? '$ test ==「0」'? – JohnP 2011-04-28 05:10:04

+0

'if($ value!== 0)',因爲'(false == 0)'爲真。但'false === 0' is not true – Ibu 2011-04-28 05:10:44

+0

字符串「0」的* length *是...(也就是說問一個不同的問題) – 2011-04-28 05:14:42

回答

2
if (strlen($x)) { 
    // win \o/ (not empty) 
} 

編碼愉快。

(所有文本框/形式輸入內容本質上是隻是文本。在任何意義的數值是後和各表示可以被驗證。0在strlen強制回到「0」。)

+0

@pst ..我只是試圖strlen的但零報告爲「0」長度。它不應該對嗎? – jim 2011-04-28 05:26:08

+0

@jim請參閱http://codepad.viper-7.com/6hVirM - 「在此工作」。也許真的有*沒有* 0? – 2011-04-28 05:27:25

+0

好的,謝謝我的朋友..我必須在其他地方發生問題。感謝幫助和提出不同問題的指針。 :) – jim 2011-04-28 05:28:56

0

您是否考慮過使用is_null()

if (is_null($value) || $value === "") {} 

if (empty($value) && $value !== 0) 
+0

不,我沒有......嗯.. brb – jim 2011-04-28 05:13:40

+0

查爾斯..我用is_null得到的結果與!isset給出的完全相同的行爲。空輸入現在通過驗證,當他們不應該 – jim 2011-04-28 05:15:33

+0

查爾斯,這是我得到的is_null:'字符串(5)「aaaaa」 字符串(0)「」 字符串(0)「」 字符串(0)「」 串(0) 「」 串(4) 「2222」 串(5) 「測試1」 串(0) 「」 串(1) 「2」' – jim 2011-04-28 05:18:01

0
if(!is_numeric($var) && empty($var)) 
{ 
    // empty 
} 
else 
{ 
    // not empty 
} 
相關問題