检查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)
只要使用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' ;