iT邦幫忙

0

請問 PHP 雙引號字串內用 {} 輸出變數

php

在 PHP 內,如果雙引號字串內要輸出變數
我之前都是:
$array = array(1, 2, 3);
$str = "This is {$array[0]}";

但最近發現也可以把 $ 號放在 {} 外面
像這樣:
$str = "This is ${array[0]}";

想請問哪種才是正規的寫法呢?

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

2 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2022-01-11 12:11:09
最佳解答

正規的寫法就是大括號在最外面

以你的範例
$在大括號裡面和外面都沒差

有些情形是有差別的
詳情請看這篇

samjam iT邦新手 3 級 ‧ 2022-01-12 14:52:28 檢舉

您貼的連結讓我學到新用法,謝謝您

2

認真來說,花括號的應用主要目的是做為區分作用。

正確的用法的確是

"{$var}"

至於為何使用如下的方式也可以的原因

"${var}"

你可以用如下的變動詳解圖來理解

"${var}"
//先解析花括號,未帶任何$變數。直接當字串輸出
"$var"
//解析到 $變數,重新定義對應 $var 並取值

以上,就是因為你可以用的原因。
但正確的做法還是將變動包在花括號內。
也盡量在沒必要的情況下,不要用花括號來包非變數的東西。(理論沒那個必要)。
因為一組花括號會增加一次解析。用在變數上沒關係。反正變數本來就是要解析了。
但字串的東西再做一次解析是有點多此一舉了

samjam iT邦新手 3 級 ‧ 2022-01-12 14:48:08 檢舉

謝謝您的回答

我要發表回答

立即登入回答