Heim > Backend-Entwicklung > PHP-Tutorial > php容易被异常使用的empty函数

php容易被异常使用的empty函数

WBOY
Freigeben: 2016-06-13 11:03:57
Original
974 Leute haben es durchsucht

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

?

在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'])) { …}
Nach dem Login kopieren

?

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

?

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

?

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

?

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

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage