php容易被错误使用的empty函数
?
在php的官方手册中写道,
?
?
随后在其手册中郑重说明了,
?
empty用来检测变量是否为空,这在网站编程中经常会使用到,比如,我们在前台页面提交了用户的用户名,这时,我们需要判断是否为空,如果为空的话,让他重新提交,这时我们需要用到函数trim,即过滤掉两边的空格,然后用empty检测。
?
if (empty(trim($_GET['username'])) { …}
?
但是,当我们运行这段代码的时候,却报错了。原因就在于“empty() 只检测变量”,而trim返回的确实值,不是变量。所以empty执行到这儿的时候报错了。修改方法也很简单,第一种方法:
?
if (trim($_GET['username'] == ’‘) { …}
?
第二种方法,增加中间变量:
?
$username = trim($_GET['username']); if (empty($username)) { …}
推荐的方法是,在项目中使用验证框架来解决这个问题。