$keyName = ['a','b','c'];
foreach($keyName AS $_key){
"$.$_key" . " = $_POST[$_key] ";
請問 "$.$key" . " = $POST[$key] " 出來會變成 $a = $POST['a'] 嗎?
因為搞不太懂foreach的用法跟什麼時候連接該用 . 去連接
這裏其實你要先了解到一件事,所謂的魔術引號(雙引號)
在PHP中,使用雙引號包起來的值。PHP會試著去做參數對應轉換的動作。
依以下例子來看
$a = 'ABC';
echo "this is $a"; //輸出為 this is ABC
echo 'this is $a'; //輸出為 this is $a
所以其實當下的動作,我先單純做一下基本的程式輸出
$keyName = ['a','b','c'];
foreach($keyName AS $_key){
echo "$.$_key" . " = $_POST[$_key] ";
}
基本來說,字串要先區分為以下兩種字串模式
"$.$_key"
" = $_POST[$_key] "
再來就是其判斷的標準為
"$.$_key" . "
//第一個$因無法符合任何變數。所以會將其視為字串看待
'$'."$_key"
//而第二個 $_key 有符合到變數。會將其帶入(假設目前是取第一個 a )
'$'.'a'
//最終生成的字串就如下
'$a'
第二個的轉變就不做詳細說明,我及做步進給你看
這邊先假設 $_POST['a'] = 'ABC';
" = $_POST[$_key] "
' = '."$_POST[$_key] "
' = '."$_POST['a'] "
' = '."$_POST['a']".' '
' = '.$_POST['a'].' '
' = '.'ABC'.' '
' = ABC '
最後兩個值串接為
$a = 'ABC'
這樣是否有理解了?