isset:就是(is)判斷是否(set)設(shè)置變量,按照字面意思焦人,存在的變量即為TRUE奶甘,不存在的變量即為FALSE篷店,但是需要注意一點(diǎn)(敲黑板,說正事):如果變量存在,但是變量的值為NULL疲陕,此時isset的返回值仍為FALSE方淤。還有一個小竅門,isset是支持同時傳入多個變量滴哦蹄殃,只有傳入的多個變量都滿足TRUE條件携茂,isset才會返回TRUE(例:isset($a,$b))诅岩。
empty:判斷變量是否為空讳苦,為空則返回TRUE。這里需要普及一下哪些值是屬于空:""吩谦、0鸳谜、"0"、NULL式廷、FALSE咐扭、array()以及定義一個變量但不賦值(例:$a;)。這里同樣有一個需要注意的點(diǎn)(再次敲黑板):如果一個變量不存在懒棉,empty此變量草描,此變量返回的是TRUE。還有一點(diǎn)值得爭議的地方是策严,我在網(wǎng)上看到穗慕,如果變量是一個無任何屬性和方法的類的對象,那此empty此變量妻导,結(jié)果是什么呢逛绵,我們來看下面的例子:
? ? ? ? ? ? ? #PHP Version 5.4.16?
? ? ? ? ? ? ? class demo{}
? ? ? ? ? ? ? $a = new demo;
? ? ? ? ? ? ? if(empty($a)) {
? ? ? ? ? ? ? ? ? echo 'yes';
? ? ? ? ? ? ? ?} else {
? ? ? ? ? ? ? ? ?echo 'no';
? ? ? ? ? ? ? ?}
最終的結(jié)果是:返回 no,說明無任何屬性和方法的類的對象倔韭,empty判斷不為空术浪。