isset

(PHP 3, PHP 4, PHP 5)

isset -- 檢驗變量是否設定

描述

bool isset ( mixed var [, mixed var [, ...]] )

若果 var 存在則返回 TRUE,否則返回 FALSE

若果已經使用 unset() 釋放了一個變量之後,它將不再是 isset()。若使用 isset() 測試一個被設定成 NULL 的變量,將返回 FALSE。同時要注意的是一個 NULL 位元組("\0")並不等同於 PHP 的 NULL 常量。

警示: isset() 只能用於變量,因為傳遞任何其它參數都將造成解析錯誤。若想檢驗常量是否已設定,可使用 defined() 函數。

<?php

$var 
'';

// 結果為 TRUE,所以後邊的文字將被列印出來。
if (isset($var)) {
    print 
"This var is set set so I will print.";
}

// 在後邊的例子中,我們將使用 var_dump 輸出 isset() 的返回值。

$a "test";
$b "anothertest";

var_dump( isset($a) );      // TRUE
var_dump( isset ($a$b) ); // TRUE

unset ($a);

var_dump( isset ($a) );     // FALSE
var_dump( isset ($a$b) ); // FALSE

$foo NULL;
var_dump( isset ($foo) );   // FALSE

?>

這對於陣列中的元素也同樣有效:

<?php

$a 
= array ('test' => 1'hello' => NULL);

var_dump( isset ($a['test']) );            // TRUE
var_dump( isset ($a['foo']) );             // FALSE
var_dump( isset ($a['hello']) );           // FALSE

// 鍵 'hello' 的值等於 NULL,所以被認為是未置值的。
// 若果想檢驗 NULL 鍵值,可以試試下邊的方法。 
var_dumparray_key_exists('hello'$a) ); // TRUE

?>

注: 由於這是一個語系結構而非函數,因此它無法被變量函數呼叫。

參見 empty()unset()defined()array_key_exists() 和錯誤控制 @ 運算符。