Re: [請益] 關於if流程控制~~

看板PHP作者 (忘卻深淵)時間16年前 (2009/08/22 15:51), 編輯推噓2(206)
留言8則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《tas72732002 (蔥頭)》之銘言: : 請問一下下列判斷句的意思 : if($a=$_GET["test"]) : echo "敘述一"; : else : echo "敘述二"; : 請問這句話的意思是判斷 $_GET["test"]是否有給值給$a嗎?? : 因為之前看的if條件都很清楚 如if($a>5) if($b ==5) 之類 : 但上述的判斷句實在不太懂他的意思~~ 麻煩各位解惑 感謝!!!!!! 首先先向原PO致歉... 小弟的無知傳達了錯誤觀念!! 原PO的猜測沒有錯~~~ 必須在意$_GET["test"]有沒有值 才能決定if裡回傳是true還是false 簡單的問題總是容易讓人心癢癢的... 在求知慾的驅使下...小弟寫了幾個類似的code測試結果如下! 1.不設定b值直接傳! <? $a = "aaa"; if($a = $b) echo $a; else echo "error"; ?> Result: error 2.設定b值傳 <? $a = "aaa"; $b = 9; if($a = $b) echo $a; else echo "error"; ?> Result: 9 3.判斷b值的isset結果 <? $a = "aaa"; if(isset($b)) echo $a; else echo "error"; ?> Result: error 4.判斷b值若為空值的isset結果 <? $a = "aaa"; $b = ""; if(isset($b)) echo $a; else echo "error"; ?> Result: aaa 5.若b為空值,傳給a的話回傳結果 <? $a = "aaa"; $b = ""; if($a = $b) echo $a; else echo "error"; ?> Result: error 所以結論 其實就跟原PO想得一模一樣... 只要b沒有值傳給a...$a=$b這個敘述式就會回傳false 無論isset($b)是否回傳true... 應該看得是$b裡面有沒有值正確的被儲存至$a~~~~ 以上 我不確定我的想法對不對... 如果有觀念上的盲點還請各位大大予以指正! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.217.99.103

08/22 16:04, , 1F
我看不太懂你說的意思…但感覺不太對
08/22 16:04, 1F

08/22 16:10, , 2F
空字串==FALSE是TRUE喔
08/22 16:10, 2F

08/22 16:11, , 3F
就像上一篇文大大推文講的...if($a=$b)等同於if($b)
08/22 16:11, 3F

08/22 16:12, , 4F
所以$b為空字串...if($b)就會跳到error~~~
08/22 16:12, 4F

08/22 16:12, , 5F
大概就是這個意思~~~
08/22 16:12, 5F

08/22 16:36, , 6F
個人是很不喜歡 寫if($b) 不夠直觀
08/22 16:36, 6F

08/23 01:11, , 7F
糾正我的觀念了!if($a=$_GET["test"])的get不只空值
08/23 01:11, 7F

08/23 01:12, , 8F
會跳離開判斷,get值=0 也會.
08/23 01:12, 8F
文章代碼(AID): #1AZwDvhy (PHP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1AZwDvhy (PHP)