isset()函數用於檢測變數是否已設定且非NULL。如果已經使用unset() 釋放了一個變數之後,再透過isset() 判斷將會回傳FALSE。若使用isset() 測試一個被設定成NULL 的變量,將會傳回FALSE。同時要注意的是null 字元("\0")並不等於PHP 的NULL 常數。 PHP 版本需求: PHP 4, PHP 5, PHP 7文法bool isset ( mixed $var [, mixed $... ] )參數說明: $var:要偵測的變數。如果一次傳入多個參數,那麼isset() 只有在全部參數都被設定時傳回TRUE,計算過程從左到右,中途遇到沒有設定的變數時就會立即停止。傳回值如果指定變數存在且不為NULL,則傳回TRUE,否則傳回FALSE。實例實例<?php $var = ' ' ; //結果為TRUE,所以後邊的文字將會印出來。 if ( isset ( $var ) ) { echo "變數已設定。 " . PHP_EOL ; } //在後邊的範例中,我們將使用var_dump 輸出isset() 的回傳值。 // the return value of 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 ?>輸出結果為:變數已設定。 bool(true)bool(true)bool(false)bool(false)bool(false)這對於數組中的元素也同樣有效:實例<?php $a = array ( ' test ' => 1 , ' hello ' => NULL , ' pie ' => array ( ' a ' => ' apple ' ) ) ; var_dump ( isset ( $a [ ' test ' ] ) ) ; // TRUE var_dump ( isset ( $a [ ' foo ' ] ) ) ; // FALSE var_dump ( isset ( $a [ ' hello ' ] ) ) ; // FALSE //鍵'hello' 的值等於NULL,所以被認為是未設定的//如果想偵測NULL 鍵值,可以試試看下邊的方法。 var_dump ( array_key_exists ( ' hello ' , $a ) ) ; // TRUE //更深層偵測var_dump ( isset ( $a [ ' pie ' ] [ ' a ' ] ) ) ; // TRUE var_dump ( isset ( $a [ ' pie ' ] [ ' b ' ] ) ) ; // FALSE var_dump ( isset ( $a [ ' cake ' ] [ ' a ' ] [ ' b ' ] ) ) ; // FALSE ?>輸出結果為: bool(true)bool(false)bool(false)bool(true)bool(true)bool(false)bool(false)在字串位移中使用isset() PHP 5.4 改變了傳入字串位移時isset() 的行為。實例<?php $ expected_array_got_string = ' somestring ' ; var_dump ( isset ( $ expected_array_got_string [ ' some_key ' ] ) ) ; var_dump ( isset ( $ expected_array_got_string [ 0 ] ) ) ; var_fect ' string ] ) ) ; var_dump ( isset ( $ expected_array_got_string [ 0 .5 ] ) ) ; var_dump ( isset ( $ expected_array_got_string [ ' 0.5 ' ] ) ) ; var_dump ( isset ( expected ) ;以上實例在PHP 5.3 的輸出: bool(true)bool(true)bool(true)bool(true)bool(true)bool(true)以上實例在PHP 5.4 的輸出: bool(false)bool(true)bool(true)bool(true)bool(false)bool(false)