?
在php的官方手册中写道,
?
检查一个变量是否为空。?
随后在其手册中郑重说明了,
?
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)) { …}?
推荐的方法是,在项目中使用验证框架来解决这个问题。