作者clifflu ( 強運逃敗 兩次 !)
看板PHP
標題Re: [請益] 關於isset與if的用法~~
時間Thu May 6 00:56:04 2010
※ 引述《tas72732002 (蔥頭)》之銘言:
: 想請問一下
: if(isset($a)==true) 與 if($a) 與if(isset($a))三者的解釋
: EX:
: if($a)
: echo $a
: if($a) 是代表$a存在則印出$a嗎??
: 存在的意思是$a不是null值嗎???
if (expr)
代表會去將 expr 轉為布林值之後,依照其真 (True) 或偽 (False),
分支執行後續程式碼
isset($a) 會依照 $a 是否為已存在之變數,傳回布林值
因此 if(isset($a)==true) if(isset($a)===true) if(isset($a)) 三者完全等義
至於寫作 if($a) 的話,評估的是 $a 轉型為布林值之後的真偽
若 $a 未定義,則會套用初始值;布林值的初始值是 false(數字是0,字串是 "")
如果 $a 是字串,則只有當 $a 為空字串 ('') 時,會被判定為 false
如果 $a 是數字,只有 $a 為 0 時會被判定為 false
如果 $a 是物件....
我會打電話叫寫出這行程式碼的 coder 來公司解釋!
---
除非 $a 本身就是布林變數, if($a) 這種判斷式是相當壞的習慣
--
鬼壓床怎麼辦
騎上去啊
Blog: http://clifflu.blogspot.com/ Since March, 2007
Photo Galelry: http://www.picasaweb.com/clifflu 沒有了 T_T
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.230.190
推 buganini:我記得'0'也是false 超~鳥~ㄉ~ 05/06 05:06
→ clifflu:噗 我沒去測試'0',不過 'false' 算是 true XD 05/06 09:34
推 appleboy46:Orz 'false' 算是字串了 05/06 18:41