[請益] 這可能是個觀念的問題

看板PHP作者 (九月二號)時間16年前 (2009/12/21 20:43), 編輯推噓9(9010)
留言19則, 6人參與, 最新討論串1/1
這可能是個觀念的問題,只是因為我的基礎不太好,所以上來請教一下 如果IF的判斷式中,是一個變數 那這三種方式,那一種是比較好的 1.if(isset($a)){ 2.if($a!=''){ 3.if($a){ 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.137.188.8

12/21 21:22, , 1F
這三種都有不同的意思,沒有什麼比較好比較不好的。
12/21 21:22, 1F

12/21 21:22, , 2F
先去查一下 php document or book 應該可以了解到這些不同
12/21 21:22, 2F

12/21 21:24, , 3F
同樓上,不太能比較的三個東西(1,3勉強可以)
12/21 21:24, 3F

12/21 22:21, , 4F
報歉是我問的不好,那三種方式中,那種比較不會出錯?
12/21 22:21, 4F

12/21 22:22, , 5F
如果$a是NULL,能通過1,2,3中的那一個?
12/21 22:22, 5F

12/21 22:26, , 6F
樓上 寫個程式下去測試...有這麼難嗎?
12/21 22:26, 6F

12/21 22:56, , 7F
抱歉抱歉,我先測試看看好了
12/21 22:56, 7F

12/21 23:05, , 8F
if(!empty($a))最好!
12/21 23:05, 8F

12/21 23:06, , 9F
empty:變數不存在、值為0、空字串、null……
12/21 23:06, 9F

12/21 23:06, , 10F
反正所有屬於「假」性的條件他都成立。
12/21 23:06, 10F

12/22 00:16, , 11F
nonono empty()不好 empty('0')會return true
12/22 00:16, 11F

12/22 10:02, , 12F
樓上是沒看到我empty前面的(!)邏輯反轉字元嗎?
12/22 10:02, 12F

12/22 10:03, , 13F
empty(""),empty(null),empty(沒變數)都是true吧!
12/22 10:03, 13F

12/22 10:07, , 14F
啊!誤會意思了。empty('0')是字串!
12/22 10:07, 14F

12/22 10:08, , 15F
來做個測試。
12/22 10:08, 15F

12/22 10:21, , 16F
不過我發現還是不對。empty()的函式要求必須是變數。
12/22 10:21, 16F

12/22 15:14, , 17F
$a='0'; if(!empty($a)) 就不合期望了啊..
12/22 15:14, 17F

12/22 15:15, , 18F
樓樓上意思就是 empty()是operator不是function
12/22 15:15, 18F

12/22 18:16, , 19F
這的確是PHP一個問題,變數自動泛型………
12/22 18:16, 19F
文章代碼(AID): #1BBsrsf2 (PHP)
文章代碼(AID): #1BBsrsf2 (PHP)