看板 PHP 關於我們 聯絡資訊
※ 引述《pppppppMAN (QQ)》之銘言: : 我必須要在$_SESSION['']的單引號中使用變數$s : 請問要怎麼在單引號中使用變數@@" : 試過'"$s"'還是不行 這樣等於送出"$s"字串 通常我的做法是直接給變數,不加單引號也不加雙引號 $_SESSION[$key]; ---------------------------------------------------- 另外補充作者想知道單引號與雙引號的差別 單引號:所有在單引號''的字串一律視為純字串,PHP系統不再去判斷 是否有PHP變數的存在 雙引號:系統會去判斷""中的字串裡,是否有含有變數名稱的字串 有的話先進行轉換 下列每行輸出的結果都是一樣的 $str1 = "這是變數{$var1},{$var2}"; //建議使用這種寫法 $str1 = "這是變數$var1,$var2";// $str1 = "這是變數".$var1.",".$var2; $str1 = '這是變數'.$var1.','.$var2; 但請注意,若有使用到特殊字元,那麼你就必需使用雙引號 下列那個結果是不一樣的 $str2 = "有斷行\n"; (\n會轉為看不見的斷行字元) $str2 = '有斷行\n'; (\n會被視為字串直接輸出) 或許你有個疑問「就全用雙引號就好了呀?」 那麼請看下列說明 1. $_SESSION['key'] 2. $_SESSION["key"] 3. $_SESSION[key] 上面三個索引都輸出相同的值,但是執行效率不同 其中第一種將會是最有效率的作法 若你已經到需要考慮到效能,可以看看下篇文章: PHP 程式效能優化的 40 條建議 http://jersus.blogspot.com/2008/03/php-40.html 個人習慣是若這個字串中沒有任何變數,我就使用'' 若字串中含有變數(通常是用在刻SQL字串時)我就使用"" 例如$sql = "SELECT * FROM table WHERE id = {$id}"; 在陣列索引中,若不是變數索引,一律使用'' 若是變數索引,就直接給予變數 例如 $arr['mykey']; $arr[$key]; -- 歡迎來我的網誌看看 @ http://doublekai.org/blog -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.240.37.127
foxzgerald :$_SESSION[key] 應該不能跑吧?! 10/19 00:25
chph :可以, 看設定, 不過這是很不好的習慣就是了.. 10/19 00:32
foxzgerald :如果要設定..是要修改哪個地方? 10/19 00:32
LPH66 :基本上它能跑的原因是因為PHP發現先前沒有定義過叫做 10/19 13:57
LPH66 :key的常數 在此之下PHP會視為那東西的值為"key" 10/19 13:58
LPH66 :(另外自行定義常數可以利用define) 10/19 13:59
LPH66 :所以基本上你是不知道別人有沒有define('key',...); 10/19 14:00
LPH66 :當然就不一定能保證會跑了 10/19 14:00