iT邦幫忙

0

文字加變數

php
  • 分享至 

  • xImage
$keyName = ['a','b','c'];
foreach($keyName AS $_key){
		"$.$_key" . " = $_POST[$_key] ";

請問 "$.$key" . " = $POST[$key] " 出來會變成 $a = $POST['a'] 嗎?
因為搞不太懂foreach的用法跟什麼時候連接該用 . 去連接

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

3
㊣浩瀚星空㊣
iT邦大神 1 級 ‧ 2022-08-12 12:50:40
最佳解答

這裏其實你要先了解到一件事,所謂的魔術引號(雙引號)

在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'

這樣是否有理解了?

感謝浩瀚大大,我理解了,謝謝你的回答

1
海綿寶寶
iT邦大神 1 級 ‧ 2022-08-12 13:43:22

1.不會
2.正確寫法如下
https://ithelp.ithome.com.tw/upload/images/20220812/20001787MzZ8xysqld.png
看得懂即可
若有問題再討論

感謝海綿大大,謝謝你的回答

我要發表回答

立即登入回答