2011-04-28 71 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 
} 
相关问题