检查string是否为空

我有一个函数isNotEmpty,如果string不为空,则返回true;如果string为空,则返回false。 我发现,如果我通过一个空string,它不工作。

function isNotEmpty($input) { $strTemp = $input; $strTemp = trim($strTemp); if(strTemp != '') //Also tried this "if(strlen($strTemp) > 0)" { return true; } return false; } 

使用isNotEmpty的stringvalidation已完成:

 if(isNotEmpty($userinput['phoneNumber'])) { //validate the phone number } else { echo "Phone number not entered<br/>"; } 

如果string是空的,否则不执行,我不明白为什么,请有人可以请点亮这个。

简单的问题其实。 更改:

 if(strTemp != '') 

 if($strTemp != '') 

可以说,你可能也想把它改成:

 if($strTemp !== '') 

因为!= ''将返回true,如果你通过的是数字0和其他一些由于PHP的自动types转换的情况 。

还要记住,PHP已经有一个空()函数。

PHP有一个名为empty()的内置函数,通过inputif(empty($string)){...}来完成testingif(empty($string)){...}参考php.net:php 空

我总是使用一个正则expression式来检查一个空string,可以追溯到CGI / Perl时代,还有Javascript,所以为什么不用PHP呢,例如(尽pipe未经testing)

 return preg_match('/\S/', $input); 

其中\ S代表任何非空白字符

PHP将空string评估为false,因此您可以简单地使用:

 if (trim($userinput['phoneNumber'])) { // validate the phone number } else { echo "Phone number not entered<br/>"; } 

在函数的if子句中,你指的是一个不存在的variables“strTemp”。 不过,'$ strTemp'确实存在。

但PHP已经有了一个空的()函数可用,为什么要自己做?

 if (empty($str)) /* String is empty */ else /* Not empty */ 

从php.net:

返回值

如果var具有非空和非零值,则返回FALSE。

以下几点被认为是空的:

 * "" (an empty string) * 0 (0 as an integer) * "0" (0 as a string) * NULL * FALSE * array() (an empty array) * var $var; (a variable declared, but without a value in a class) 

http://www.php.net/empty

只要使用strlen()函数

 if (strlen($s)) { // not empty } 

那么,而不是一个答案(我相信你已经解决了你的问题),我会给你一个build议。

我不了解所有其他人,但是在看到这样的事情时,我个人非常恼火:

 if(<<condition>>) { return true; } return false; 

这需要一个优雅的“ return (<<condition>>); ”解决scheme。 请总是看看你的代码,并删除这种逻辑。 每个情况你都不需要一个IF语句。

也许你可以试试这个

 if(isNotEmpty($userinput['phoneNumber']) == true) 

这是因为php.ini中的phpconfiguration

如果你有一个字段serial_number,然后要检查空

 $serial_number = trim($_POST[serial_number]); $q="select * from product where user_id='$_SESSION[id]'"; $rs=mysql_query($q); while($row=mysql_fetch_assoc($rs)){ if(empty($_POST['irons'])){ $irons=$row['product1']; } 

通过这种方式,您可以使用另一个空函数来循环循环中的所有文件

那么这里是检查string是否为空的简短方法。

 $input; //Assuming to be the string if(strlen($input)==0){ return false;//if the string is empty } else{ return true; //if the string is not empty } 

你有一个答案,但在你的情况下,你可以使用

 return empty($input); 

要么

 return is_string($input); 

我只写我自己的函数, is_string用于types检查, strlen检查长度。

 function emptyStr($str) { return is_string($str) && strlen($str) === 0; } print emptyStr('') ? "empty" : "not empty"; // empty 

这是一个小testingrepl.it

这是一个简短而有效的解决scheme,正是你要找的:

 return $input > null ? 'not empty' : 'empty' ;