看板 PHP 關於我們 聯絡資訊
※ 引述《joedenkidd (優質的藍色射手)》之銘言: : 各位版友好: : <? : echo $_GET['a']; : echo $_GET["a"]; : echo $_GET[a]; : ?> : 當我帶參數10時,通通都是顯示10。 : 想請問一下這三個除了形式還有什麼不同呢? 'a' 和 "a" 都是字串 只是差在 php 會不會去字串當中找變數代換而已 (''不會 ""會) 而第三種在這個情形下會把 a 代入值 'a' 這裡是這麼運作的: php 看到沒有加 $ 的 a 會去找有沒有一個常數叫做 a (這個常數可以是內定 也可以是用 define() 定義的常數) 發現找不到之後它會去抓預設值 這個預設值是內容為這個常數名字的字串 在這個情形裡就是 'a' (也就是說 萬一有人先做了 define('a','b') 的話 那 $_GET[a] 就會變成 $_GET['b'] 了) -- 'Oh, Harry, dont't you see?' Hermione breathed. 'If she could have done one thing to make absolutely sure that every single person in this school will read your interview, it was banning it!' ---'Harry Potter and the order of the phoenix', P513 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.84
ckmarkhsu :還有就是速度問題,$_GET[a] 速度遠慢於 $_GET['a'] 11/12 06:10
LPH66 :沒錯 這正是因為php會去找有沒有人定義常數a 11/12 09:42
LPH66 :可是php裡其他人定義的常數像山一樣高... 11/12 09:43