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

PHP string 型別深度解析:四種定義語法、變數解析規則、字元存取與修改、編碼與記憶體限制

     編輯:PHP 綜合知識

四種字串定義語法

語法範例特性
單引號'hello'不解析變數、僅跳脫 \' 和 \\、效能最佳
雙引號"hello $name"解析變數、完整跳脫序列 (\n, \t, \xXX, \u{XXXX}...)
Heredoc<<<EOT ... EOT;類雙引號、適合多行、結束標記須獨立行首
Nowdoc (PHP 5.3+)<<<'EOT' ... EOT;類單引號、不解析、適合嵌入程式碼/SQL

跳脫序列完整表 (雙引號/Heredoc)

序列含義
\n換行 (LF, 0x0A)
\r歸位 (CR, 0x0D)
\t水平定位
\v垂直定位 (PHP 5.2.5+)
\f換頁 (PHP 5.2.5+)
\\反斜線
\$美元符號
\"雙引號
\[0-7]{1,3}八進制字元
\x[0-9A-Fa-f]{1,2}十六進制字元
\u{XXXXXX}Unicode code point (PHP 7.0+)

變數解析規則 (雙引號/Heredoc)

<?php
$beer = 'Heineken';
echo "$beer's taste";     // OK: ' 非合法變數字元
echo "He drank $beers";   // ❌ 解析為 $beers (不存在)
echo "He drank ${beer}s"; // OK: 大括號界定
echo "He drank {$beer}s"; // OK: 複雜語法

$arr = ['foo' => 'bar'];
echo "Value: {$arr['foo']}"; // OK: 複雜語法支援陣列/物件
echo "Value: $arr[foo]";     // ⚠️ 先找常數 foo,觸發 Notice
?>

字元存取與修改

<?php
$str = 'abcdef';
echo $str[1];   // 'b' (0-based)
echo $str{1};   // 'b' (PHP 5.3+ 棄用,勿用)

$str[1] = 'X';  // 'aXcdef' - 單字元替換
$str[10] = 'Y'; // 自動補空格至長度 11: 'aXcdef    Y'

// 陷阱:非整數索引
var_dump($str['foo']); // NULL + Notice (轉為 0)
var_dump(isset($str['foo'])); // true (索引 0 存在)
?>

編碼與記憶體

  • PHP 字串為**位元組序列**,無內建編碼資訊 (二進位安全)
  • 長度限制:memory_limit (預設 128M/256M)
  • 多位元組處理:mb_strlen, mb_substr, iconv, mb_convert_encoding
  • 字串連接:. 運算子、.=、implode、sprintf

常用函數速查

函數用途
strlen/mb_strlen長度 (位元組/字元)
substr/mb_substr截取
strpos/mb_strpos尋找位置
str_replace替換 (大小寫敏感)
preg_replace正則替換
explode/preg_split分割
trim/ltrim/rtrim去除空白
htmlspecialcharsHTML 轉義 (防 XSS)
json_encodeJSON 編碼
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved