麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > PHP > 正文

php中isset()函數(shù)變量判斷實(shí)例

2024-09-04 11:48:42
字體:
供稿:網(wǎng)友

isset函數(shù)我們多用于判斷變量是不是存在了,如isset($a)了,如果存在返回 true,否則返回false了,下面我們一起來看看.

isset函數(shù)是檢測(cè)變量是否設(shè)置.

格式:bool isset ( mixed var [, mixed var [, ...]] )

返回值:若變量不存在則返回 FALSE,若變量存在且其值為NULL,也返回 FALSE,若變量存在且值不為NULL,則返回 TURE,同時(shí)檢查多個(gè)變量時(shí),每個(gè)單項(xiàng)都符合上一條要求時(shí)才返回 TRUE,否則結(jié)果為 FALSE.

如果已經(jīng)使用 unset() 釋放了一個(gè)變量之后,它將不再是 isset(),若使用 isset() 測(cè)試一個(gè)被設(shè)置成 NULL 的變量,將返回 FALSE,同時(shí)要注意的是一個(gè) NULL 字節(jié)("")并不等同于 PHP 的 NULL 常數(shù).

獲取用戶屬性時(shí)有的用戶能,有的用戶不能,同樣的邏輯為什么不能經(jīng)檢查使用了類似這樣的代碼:

  1. $userInfo=’abc’; 
  2. if(isset($userInfo['account'])) { 
  3. $account=$userInfo['account']; 
  4. else { 
  5. $account=$userInfo

發(fā)現(xiàn)$account得到的是空,查了一些資料也沒得到結(jié)果,做了一個(gè)實(shí)驗(yàn)得到了結(jié)論,代碼如下:

$a=’abc;echo $a['account'];

結(jié)果是a,當(dāng)是字符串key沒有時(shí),它會(huì)轉(zhuǎn)化成數(shù)字key,是0,所以得到了a,現(xiàn)在php5.4已經(jīng)修復(fù),趁這機(jī)會(huì),整理了一下isset的用法,供大家借鑒,代碼如下:

  1. <?php 
  2.  
  3. $var = ''
  4.  
  5. if (isset($var)) { 
  6. print "This var is set set so I will print."
  7.  
  8. // 在后邊的例子中,我們將使用 var_dump函數(shù) 輸出 isset() 的返回值。 
  9.  
  10. $a = "test"
  11. $b = "anothertest"
  12.  
  13. var_dump( isset($a) ); // TRUE 
  14. var_dump( isset ($a$b) ); // TRUE 
  15.  
  16. unset ($a); 
  17.  
  18. var_dump( isset ($a) ); // FALSE 
  19. var_dump( isset ($a$b) ); // FALSE 
  20.  
  21. $foo = NULL; 
  22. var_dump( isset ($foo) ); // FALSE 
  23.  
  24. ?> 

這對(duì)于數(shù)組中的元素也同樣有效,代碼如下:

  1. <?php 
  2. $a = array ('test' => 1, 'hello' => NULL); 
  3. var_dump( isset ($a['test') ); // TRUE 
  4. var_dump( isset ($a['foo') ); // FALSE 
  5. var_dump( isset ($a['hello') ); // FALSE 
  6. //開源代碼Vevb.com 
  7. // 'hello' 等于 NULL,所以被認(rèn)為是未賦值的。 
  8. // 如果想檢測(cè) NULL 鍵值,可以試試下邊的方法。 
  9. var_dump( array_key_exists('hello'$a) ); // TRUE 
  10. ?> 

鍵 ‘b’ 的值等于 NULL,所以被認(rèn)為是未置值的,但是鍵’c'的值是空結(jié)果是true,空值是代表 有設(shè)置的 如果想檢測(cè) NULL 鍵值,可以試試下邊的方法,代碼如下:

var_dump( array_key_exists(‘hello’, $a) ); // TRUE

警告:isset() 只能用于變量,因?yàn)閭鬟f任何其它參數(shù)都將造成解析錯(cuò)誤,若想檢測(cè)常量是否已設(shè)置,可使用 defined() 函數(shù).

一些應(yīng)用中實(shí)例:PHP isset()對(duì)PHP參數(shù)判斷您可以使用 PHP isset() 來判斷一個(gè)參數(shù)是否被定義,注意如果該參數(shù)為空,或者"n"(NULL字節(jié))使用 PHP isset() 判斷之后,都會(huì)為TRUE,代碼如下:

  1. <?php 
  2. $weigeti=''//這里初始參數(shù)$weigeti=''; 
  3. $weigeti0=FALSE //這里初始參數(shù)為布爾FALSE 
  4. $weigeti2=NULL;  //這里定義$weigeti2=NULL,用isset()判斷返回FALSE 
  5. $weigeti3=""// 這里是NULL字節(jié),用isset()判斷,返回TRUE,不同于NULL常數(shù) 
  6. $weigeti4="www.companysz.com";  //這里定義會(huì)在下面給unset掉 
  7.  
  8. if(isset($weigeti)){ echo '參數(shù)$weigeti已經(jīng)設(shè)定,且值不為NULL'; } 
  9. // 參數(shù)$weigeti已經(jīng)賦值,而且值為$weigeti='',所以會(huì)輸出“參數(shù)$weigeti已經(jīng)設(shè)定” 
  10.  
  11. if(isset($weigeti0)){ echo '參數(shù)$weigeti0已經(jīng)設(shè)定,且值不為NULL'; } 
  12. // 參數(shù)$weigeti0已經(jīng)賦值,而且值為$weigeti=FALSE,所以會(huì)輸出“參數(shù)$weigeti已經(jīng)設(shè)定” 
  13.  
  14. if(isset($vget)){ echo '參數(shù)$vget已經(jīng)設(shè)定,且值不為NULL'; } 
  15. // 參數(shù)$vget根本就沒有被提及過,isset($vget)返回FALSE,不會(huì)輸出 
  16.  
  17. if(isset($weigeti2)){ echo '參數(shù)$weigeti2已經(jīng)設(shè)定,且值不為NULL'; } 
  18. // 這里是$weigeti2雖然被設(shè)定了,但是$weigeti2=NULL,所以isset($weigeti2)返回FALSE,不會(huì)輸出 
  19.  
  20. if(isset($weigeti3)){ echo '參數(shù)$weigeti3已經(jīng)設(shè)定,且值不為NULL'; } 
  21. // 參數(shù)$weigeti3 雖然 就是代表NULL字節(jié),但是這個(gè)不是常數(shù)NULL,所以$isset("")返回TRUE,會(huì)輸出 
  22.  
  23. unset($weigeti4);  //這里給$weigeti4 釋放掉了 
  24. if(isset($weigeti4)){ echo '參數(shù)$weigeti4已經(jīng)設(shè)定,且值不為NULL'; } 
  25. // 雖然開始已經(jīng)定義$weigeti4,而且還不為NULL,但是后來又給 unset() 掉了,所以不會(huì)輸出。 
  26. ?> 

PHP isset() 對(duì)數(shù)組的判斷在使用PHP數(shù)組的時(shí)候,需要判斷數(shù)組的某個(gè)值是否存在也可以使用 PHP isset() 函數(shù),代碼如下:

  1. <?php 
  2. $V=array
  3. 'WeiGeTi'=>'www.Vevb.net'
  4. 'V-Get'=>array
  5.     'www'=>'www.companysz.com'
  6.     'e'=>'e.v-get.com'
  7.     'wuliu'=>array
  8.         'www'=>'wuliu.Vevb.com'
  9.         'yiwu'=>'www.companysz.com' 
  10.      ) 
  11.    ) 
  12. ); 
  13.  
  14. // var_dump用于輸出TRUE 或 FALSE 
  15.  
  16. var_dump(isset($V['WeiGeTi'])); 
  17. // 數(shù)組$V 的$V['WeiGeTi'] ='www.companysz.com'已經(jīng)存在,所以輸出TRUE 
  18.  
  19. var_dump(isset($V['V-Get']['e'])); 
  20. //$V['V-Get']['e']='e.v-get.com' 所以輸出 TRUE 
  21.  
  22. var_dump(isset($V['V-Get']['wuliu']['yiwu'])); 
  23. // $V['V-Get']['wuliu']['yiwu']='www.companysz.com'所以輸出TRUE 
  24.  
  25. var_dump(isset($V['V-Get']['wuliu']['sh'])); 
  26. //根據(jù)數(shù)組,根本就沒有設(shè)定該項(xiàng),所以輸出FALSE 
  27. ?> 

PHP isset()多參數(shù)判斷很多時(shí)候我們需要對(duì)多個(gè)參數(shù)進(jìn)行判斷,可以使用isset($A)&&isset($B)……來判斷這些參數(shù)是不是都已經(jīng)設(shè)定了,而且都不為NULL,對(duì)此您可以使用isset()多參數(shù)來判斷是不是都設(shè)定了,代碼如下:

  1. <?php 
  2. isset($v1)&&isset($v2)&&isset($v3)…… 
  3. 等價(jià)于  
  4. isset($v1,$v2,$v3……) 
  5. ?> 

使用isset()判斷多個(gè)參數(shù),需要所有參數(shù)都被設(shè)定,且不為NULL,只要其中有一個(gè)參數(shù)沒有被設(shè)定過,或者為NULL,那么整個(gè)isset()就為FALSE.

PHP isset()判斷$_POST、$_GET、$_REQUEST等值,用isset() 或者empty() 判斷通過表單傳遞來的參數(shù)是isset() 最常見的用法,代碼如下:

  1. if(isset($_POST['from'])&&'E.V-Get.com'==$_POST['from']){ 
  2. echo '網(wǎng)站通過POST傳遞的來源是E.V-Get.com'

根據(jù)上面我們可以用isset判斷多參數(shù),在對(duì)表單傳遞來的值進(jìn)行判斷就最方便了,代碼如下:

  1. <?php 
  2. //表單傳遞來user用戶名和 pass必須同時(shí)存在才能執(zhí)行 
  3. if(isset($_POST['user'],$_POST['pass'])){ 
  4. $user=$_POST['user']; 
  5. $pass=$_POST['pass']; 
  6. echo '您填寫的用戶名是:',$user,';密碼是:',$pass
  7. ?> 

PHP isset($var{字符串長度}) 判斷字符串長度用PHP判斷字符串是否存在或者判斷字符串長度是否超過某一數(shù)字或者判斷字符串長度是否為空一般使用strlen(),但是其實(shí)使用isset()性能更優(yōu)越,代碼如下:

  1. <?php 
  2. //三元,等同于 if(isset($_POST['from'])){$weigeti=$_POST['from'];}else{$weiget='';} 
  3.  
  4. $weigeti=isset($_POST['from'])?$_POST['from']:''
  5.  
  6. //判斷$weigeti存在,且字符串長度大于0 
  7. /* 菜鳥寫法   
  8. if(strlen($weigeti)>0){ 
  9. echo '$weigeti子符長度大于0';} 
  10. */ 
  11.  
  12. // 性能更優(yōu)越的寫法,判斷$weigeti第1個(gè)字符是否設(shè)定了 
  13. if(isset($weigeti{1})){ 
  14. echo '$weigeti字符長度大于0'
  15. ?>

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品免费观在线 | 中文日韩在线 | 久久毛片 | 色诱亚洲精品久久久久久 | 亚洲aⅴ免费在线观看 | 成人毛片免费看 | 黄色a级片视频 | 免费a视频 | 鲁丝片一区二区三区免费入口 | 久久撸视频 | 最新中文字幕在线 | caoporn国产一区二区 | 黄色av一区二区三区 | 黄色毛片免费看 | 日韩av成人 | 免费欧美精品 | 久久国产精品久久精品国产演员表 | 国产精品啪一品二区三区粉嫩 | 女人裸体让男人桶全过程 | 欧美精品久久久久久久久久 | 欧美一区二区三区中文字幕 | 香蕉成人在线观看 | 亚洲婷婷日日综合婷婷噜噜噜 | 91九色视频观看 | 国产一区二区高清在线 | 久久久久久久免费看 | 精品在线观看一区 | 久久中文字幕在线观看 | 香蕉久草在线 | 国产精品99久久久久久宅女 | 史上最强炼体老祖动漫在线观看 | 国产精品久久久乱弄 | 男女生羞羞视频网站在线观看 | 成人在线观看免费视频 | 久久福利在线 | av日韩一区二区三区 | 狠狠操电影 | 久久国产精 | 99久久精品免费 | 视频一区二区不卡 | 一本色道久久综合狠狠躁篇适合什么人看 |