PHPは豊富な文字列サポートを提供しています。異なるクォートスタイル(異なる補間動作)、連結、および大規模な文字列関数ライブラリがあります。クォート化の違いと関数セットを理解することは、日常的な知識です。
クォート: シングルとダブル(補間)
<?php
$name = "Ann";
'Hello $name';
;
;
重要な違い:ダブルクォートは変数を補間します($name は値に置き換わります)、シングルクォートはリテラルです(高速、補間なし)。オブジェクトプロパティなどの複雑な式には {} を使用します。
$greeting = "Hello, " . $name . "!"; // . is the concatenation operator (NOT +)
$greeting .= " Welcome."; // .= appends
PHPは文字列連結に . を使用します(数値の + ではなく)。これは一般的な混乱のポイントです。
$html = <<<HTML
<div>$name</div> // heredoc — interpolates (like double quotes)
HTML;
$raw = <<<'TEXT'
Literal $name // nowdoc (quoted label) — no interpolation (like single quotes)
TEXT;
strlen($s); // length
strtoupper($s); strtolower($s);
trim($s); // remove surrounding whitespace
str_replace("old", "new", $s);
strpos($s, "needle"); // find position (false if not found — use === false)
substr($s, 0, 5); // extract a substring
explode(",", $csv); // split into an array
implode(",", $array); // join an array into a string
sprintf("%.2f", 3.14159); // formatted output → "3.14"
str_contains($s, "x"); // PHP 8: cleaner substring check
mb_strlen($s); // ✅ correct length for multi-byte (UTF-8) text
strlen($s); // ⚠️ counts BYTES, not characters — wrong for non-ASCII
非ASCII/Unicodeテキストの場合、mb_* 関数(mb_strlen、mb_substr)を使用してください。プレーン関数は文字ではなくバイト数をカウントするため、マルチバイトテキストで破損します。
文字列操作はWebアプリケーション開発に常に付きまとうもの(HTML構築、入力処理、出力フォーマット、データ解析)です。そのためPHPの文字列処理を理解することは、日常的に必要な知識です。
最も重要な実践的なポイント:シングルクォートとダブルクォートの違い(ダブルクォートは変数を補間し、シングルクォートはリテラル)は基本的であり、初心者が頻繁に混乱する点です。PHPは連結に . を使用します(+ ではなく)。PHPには一般的なタスク(検索、置換、分割/結合、フォーマット)用の膨大な文字列関数ライブラリがあります。
重要なのは、非英語/Unicodeテキストを扱うアプリケーションでは、プレーン関数(バイトをカウントし、マルチバイトテキストを破損させる)の代わりに**mb_*(マルチバイト)関数**を使用することを知ることで、実際のバグを防ぐことができるということです。
PHPのクォート動作、連結、および文字列関数ライブラリ(マルチバイト安全性を含む)への習熟は、Webアプリケーション開発の絶え間ない文字列作業に必要な核となる知識です。