首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 大括號在字串與變量解析中的三大用法詳解

     編輯:PHP 相關知識

前言

PHP 的大括號 {} 在雙引號字串與 heredoc/nowdoc 中扮演關鍵角色,能明確界定變量邊界、實現複雜變量解析,甚至存取字串單一字元。本文透過實例釐清三種常見用法。

1. 單層大括號:界定變量名邊界

當變量名緊鄰其他字元時,大括號讓解析器知道變量名稱結束位置。

$arr = [0 => 123, 'name' => '你好'];

foreach ($arr as $k => $v) {
    // 正確:{$arr[$k]} 明確表示陣列元素
    echo "select * from blog_blogs where blog_tags like '%{$arr[$k]}%' order by blog_id
"; } // 錯誤示範:"$arr['name']" 會被視為字面字串 // 正確寫法: echo "{$arr['name']}"; // 輸出:你好

2. 雙層大括號:輸出字面大括號字元

外層大括號被解析器消耗,內層保留為字面字元。

foreach ($arr as $k => $v) {
    // 輸出:select * from ... like '%{123}%' ...
    echo "select * from blog_blogs where blog_tags like '%{{$arr[$k]}}%' order by blog_id
"; }

3. 字串字元存取:$str{索引} 或 $str[索引]

PHP 允許用大括號或中括號直接讀取/修改字串指定位置的字元(0-based)。

$str = 'abcdefg';
echo $str{4}; // 輸出:e (第 5 個字元)
echo $str[4]; // 同樣輸出 e,PHP 7+ 建議用中括號

總結對照表

語法用途備註
{$var}界定變量名雙引號/heredoc 中必要
{{$var}}輸出字面 { 內容 }外層被解析,內層保留
$str{0} / $str[0]字串字元存取PHP 7.4+ 棄用大括號語法,建議改用中括號

最佳實踐

  • 雙引號字串中包含陣列元素、物件屬性、方法呼叫時,習慣加上 {},提升可讀性並避免解析錯誤。
  • 字串字元存取統一使用 $str[$i],相容未來版本。
  • 單引號字串不解析變量,大括號無特殊作用。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved