php容易被错误使用的empty函数_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > php容易被错误使用的empty函数

php容易被错误使用的empty函数

 2012/9/8 11:53:49  web001  程序员俱乐部  我要评论(0)
  • 摘要:在php的官方手册中写道,检查一个变量是否为空。如果var是非空或非零的值,则empty()返回FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var$var;以及没有任何属性的对象都将被认为是空的,如果var为空,则返回TRUE。随后在其手册中郑重说明了,empty()只检测变量,检测任何非变量的东西都将导致解析错误。换句话说,后边的语句将不会起作用:empty(addslashes($name))。empty用来检测变量是否为空,这在网站编程中经常会使用到
  • 标签:PHP 使用 函数 错误

?

在php的官方手册中写道,

?

检查一个变量是否为空。
如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。?

?

随后在其手册中郑重说明了,

?

empty() 只检测变量,检测任何非变量的东西都将导致解析错误。换句话说,后边的语句将不会起作用: empty(addslashes($name))。 ?

empty用来检测变量是否为空,这在网站编程中经常会使用到,比如,我们在前台页面提交了用户的用户名,这时,我们需要判断是否为空,如果为空的话,让他重新提交,这时我们需要用到函数trim,即过滤掉两边的空格,然后用empty检测。

?

if  (empty(trim($_GET['username'])) { …}

?

但是,当我们运行这段代码的时候,却报错了。原因就在于“empty() 只检测变量”,而trim返回的确实值,不是变量。所以empty执行到这儿的时候报错了。修改方法也很简单,第一种方法:

?

if  (trim($_GET['username'] == ’‘) { …}

?

第二种方法,增加中间变量:

?

$username = trim($_GET['username']);
if  (empty($username)) { …}
?

推荐的方法是,在项目中使用验证框架来解决这个问题。

发表评论
用户名: 匿名