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

PHP 單雙引號差異深度解析:定義、變數解析、SQL 寫法與效能

     編輯:PHP 相關知識

PHP 單雙引號差異深度解析:定義、變數解析、SQL 寫法與效能

1. 定義字串的基本規則

  • 必須成對使用同種引號:'Hello' 或 "Hello",混用會語法錯誤
  • 單引號字串內可直接包含雙引號,反之亦然
$s = "I am a 'single quote string' inside double quotes";
$s = 'I am a "double quote string" inside single quotes';

2. 變數解析與逸出字元

情境雙引號單引號
變數解析"foo is $foo" → foo is 2'foo is $foo' → foo is $foo(原樣輸出)
逸出字元"\n" → 換行'\n' → 字面 \n
逸出引號"\""'\''
逸出反斜線"\\"'\\'

效能:單引號不需掃描變數與逸出字元,解析速度略快,建議純靜態字串優先用單引號。

3. 複雜變數嵌入:使用花括號

echo "value = {$arr[$i][$j]}"; // 正確解析多維陣列
echo "value = \{$var}";        // 輸出字面 {$var}

4. SQL 語句撰寫實務

SQL 標準以單引號包裹字串字面值:

$sql = "SELECT * FROM users WHERE name = 'O\'Reilly'"; // 手動逸出
// 或
$name = "O'Reilly";
$sql = "SELECT * FROM users WHERE name = '" . mysqli_real_escape_string($conn, $name) . "'";

建議使用 Prepared Statement(PDO::prepare / mysqli_prepare)完全避免引號與注入問題。

5. 字串連接:點號 vs 逗號

echo 'value = ' . $var;      // 連接後輸出
echo 'value = ', $var;       // 直接多參數輸出,效能稍優

總結:靜態字串用單引號、需解析變數用雙引號、SQL 用參數化查詢、輸出多變數用逗號,兼顧可讀、安全與效能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved