[請益] 變數的有效範圍

看板PHP作者 (michaelz)時間15年前 (2008/09/18 07:46), 編輯推噓5(507)
留言12則, 6人參與, 最新討論串1/1
php中似乎變數的scope跟一般語言有些一不一樣 例如 if(true) { $i=123; } print $i; 在一般語言中print的部分應該是會出錯但是在php中卻沒問題 請問script language中都是這樣嗎? 有什麼辨法可以設定成像C或java那樣比較嚴格嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.73.152.147

09/18 07:52, , 1F
因為 PHP 不需要 var $i; 你需要的話必須手動 unset
09/18 07:52, 1F

09/18 07:53, , 2F
對 PHP 來說,你等於在 if 外面定義過 var $i;
09/18 07:53, 2F

09/18 09:58, , 3F
? 是這樣嗎? java會出錯?
09/18 09:58, 3F

09/18 10:00, , 4F
喔 終於看懂了..
09/18 10:00, 4F

09/18 12:07, , 5F
除了沒有宣告變數以外,其他語言這樣會出錯嗎?
09/18 12:07, 5F

09/18 13:47, , 6F
除了沒有宣告以外,在其他語言應該也不會出錯才對..
09/18 13:47, 6F

09/18 13:47, , 7F
變數的 scope 應該跟 if 的{} 沒關係...
09/18 13:47, 7F

09/18 16:04, , 8F
如果是if(true){ int hi=5;}
09/18 16:04, 8F

09/18 16:04, , 9F
這樣hi 在java或c裡面的scope 就只有那個if區間.
09/18 16:04, 9F

09/18 17:01, , 10F
VB 不會出錯 ~"~
09/18 17:01, 10F

09/18 17:01, , 11F
歐歐,忘記宣告擺在裡面的這種狀況了XD
09/18 17:01, 11F

09/19 11:53, , 12F
對喔.忘記宣告擺在裡面的情況..:P
09/19 11:53, 12F
文章代碼(AID): #18qPRhW3 (PHP)