肖恩D++
Not Equal C && !=C && 不等于西
-
PHP中检查文本输入是否为空或0
Posted on April 13th, 2009 2 comments玩PHP有一段时间了,从phpBB的论坛,到本blog的wordpress,总觉得php是既实用又简便,更重要的——是免费的。
最近在搞一个open source的程序,由于是开源的,除了源代码以外就基本没有什么可参考的资料或者注解,所以修改起来着实地头疼。尤其是其中一个部分,需要检查某文本输入框内,用户输入的data是否为0,或者是否为空(即什么也没输入)。因为什么也没输入,变量就按照默认的数值走,而默认数值可由用户在特别的function内设置;但如果是0,那变量自然要取0。
最开始一直尝试empty(),代码如下:123456789101112$foundError = false;if ($copyQ->getRowCount() == 0) {$foundError = true;$pageErrors["barcodeNmbr"] = $loc->getText("checkoutErr2");} else {if (!empty($duedate)){$daysDueBack = $duedate;}else{daysDueBack = $copyQ->getDaysDueBack($copy);}……}但最后发现empty()其实把空变量和0都规为一类了,所有不论我输入0或者不输入,最后变量的值均为不输入的值,也就是默认值。随即把代码改为:
1234567891011121314$foundError = false;if ($copyQ->getRowCount() == 0) {$foundError = true;$pageErrors["barcodeNmbr"] = $loc->getText("checkoutErr2");} else {if (!empty($duedate)){$daysDueBack = $duedate;}else if($duedate == 0){$daysDueBack = 0}else{$daysDueBack = $copyQ->getDaysDueBack($copy);}……}改完一测试,结果变成不论输入0还是不输入,变量的值均为0!!郁闷,从我多年C的经验看,逻辑和语法都没错误……
过了几天,吃完午饭后突然灵光一现,将if和else语句的条件掉了个,改为:1234567891011$foundError = false;if (isset($duedate) && $duedate!=' '){if(empty($duedate)){$daysDueBack = 0;}else{$daysDueBack = $duedate;}}else{$daysDueBack = $copyQ->getDaysDueBack($copy);}……再一测试,整个世界清静了~~~~
849 views
Recent Comments