在 PHP 開發(fā)中,常見的操作就是獲取用戶的輸入信息,例如表單數(shù)據(jù)、GET 或 POST 參數(shù)。在使用這些數(shù)據(jù)之前,我們需要首先判斷這些數(shù)據(jù)是否存在。幸運(yùn)的是,PHP 提供了一個(gè)快速檢查變量是否設(shè)置的函數(shù),那就是 isset()。
isset() 函數(shù)用于檢查變量是否已經(jīng)設(shè)置并且不是 null:
if (isset($username)) { echo "用戶名已設(shè)置"; }
如果 $username 變量已設(shè)置,則上面的代碼輸出 "用戶名已設(shè)置"。
它的返回值為布爾值:如果變量已設(shè)置,則返回 true,否則返回 false。
一般地,我們用 isset() 函數(shù)判斷是否存在表單或 URL 參數(shù):
if (isset($_GET['user'])) { echo "hello, ".$_GET['user']; }
以上代碼中,如果 URL 中 'user' 參數(shù)已經(jīng)設(shè)置,則將用戶名作為參數(shù)輸出。
數(shù)組中的元素同樣可以使用 isset() 函數(shù)來判斷,例如:
$fruit = array('apple', 'orange', 'banana'); if (isset($fruit[1])) { echo "水果 1 已設(shè)置."; }
數(shù)組元素的編號從 0 開始,所以上面的例子輸出 "水果 1 已設(shè)置"。
在用 isset() 函數(shù)時(shí),需要特別注意的是,如果變量只是被賦值為 null,則這個(gè)變量并沒有被設(shè)置。
$car = null; if (isset($car)) { echo "汽車已經(jīng)設(shè)置."; } else { echo "汽車尚未設(shè)置."; }
以上代碼輸出 "汽車尚未設(shè)置",因?yàn)?$car 變量已被賦值為 null。
在使用 isset() 函數(shù)時(shí),還需要區(qū)分 unset() 函數(shù)的作用:unset() 函數(shù)用于銷毀指定的變量,使其不再存在。
$fruit = array('apple', 'orange', 'banana'); unset($fruit[1]); if (isset($fruit[1])) { echo "水果 1 已設(shè)置."; } else { echo "水果 1 已被銷毀."; }
以上示例代碼輸出 "水果 1 已被銷毀"。
總結(jié)來說,isset() 函數(shù)用于檢查變量是否存在并且不是 null,如果變量已設(shè)置,則返回 true,否則返回 false。我們可以用它來判斷用戶輸入的信息是否可用,以避免因未判斷變量而導(dǎo)致的錯(cuò)誤。