看板 PHP 關於我們 聯絡資訊
※ 引述《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