作者bigair (不要食言 會肥)
看板PHP
標題Re: [請益] 請問這四種判斷方式的差異?
時間Tue Aug 25 18:43:54 2009
※ 引述《ysbh (開始頹廢的生活)》之銘言:
: 這四種判斷方式應該是蠻常用的
: 但是到現在為止還搞不太清楚之間的差異
: <?php
: //方式1
: if(!isset($room)){
: echo "A";
: }
$room 這個變數是否已經定義了
: //方式2
: if(empty($room)){
: echo "B";
: }
$room 這個變數是否為 NULL 或是空字串
: //方式3
: if($room==null){
: echo "C";
: }
$room 這個變數是否為 NULL
: //方式4
: if($room==""){
: echo "D";
: }
$room 這個變數是否為空字串
: ?>
: 若直接輸出的話,結果是ABC
直接輸入以上程式 => 沒有定義 $room
在比較新的PHP版本中,預設會跳出 notice 訊息
會變成 $room = NULL (不完全是)
: 若在前面加上一行$room=""; 則結果為BC
定義 $room 為空字串
: 有點搞糊塗了,還請各位大大指導一下
: 感謝您的回答~
--
今天發生了件小小的好事情唷 我擺在鞋櫃的鞋子裡面被放了圖釘
明明班上有50人之多 偏偏就挑上了我 這正是有某個人 比任何人都要在意我的證據
為了想將這小小的喜悅 也跟大家分享
我在每個人的鞋子裡 都各分放了一粒圖釘
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.40.51
推 ysbh :剛剛在第一行加上 $room=null之後實際測試 08/25 19:47
→ ysbh :發現輸出的結果是ABCD,所以表示當$room=null時 08/25 19:49
→ ysbh :是屬於未定義的狀態嗎? 08/25 19:50
→ bigair :應該說,用 == 檢查會有 空字串等於 null 的情況發生 08/25 20:46
→ bigair :你要嚴謹一點的話,用 === 做個實驗檢查就知道了 08/25 20:46
→ bigair :說錯,是 null 會等於空字串,講反了 08/25 20:47