empty,isset,is_null 這幾個函數時候,遇到一些問題。甚至給自己的程序帶來一些安全隱患的bug。很多時候,對於isset,empty都認為差不多。因此開發時候,就沒有注意,一段作為流程判斷時候,就出現bug問題了。
一、舉例說明
a.一個變量沒有定義,我們該怎麼樣去判斷呢?
view source print?
01
<?php
02
#不存在
$test
變量
03
04
$isset
= isset(
$test
)?
"test is define!"
:
"test is undefine!"
;
05
echo
"isset:$issetrn"
;
06
07
$empty
=!
empty
(
$test
)?
"test is define!"
:
"test is undefine!"
;
08
echo
"empty:$emptyrn"
;
09
10
$is_null
=
is_null
(
$test
)?
"test is define!"
:
"test is undefine!"
;
11
echo
"is_null:$is_nullrn"
;
測試結果是:
結果出來了:empty,isset首先都會檢查變量是否存在,然後對變量值進行檢測。而is_null 只是直接檢查變量值,是否為null,因此如果變量未定義就會出現錯誤!
1 2 3 4