.Water-Sunlight
.サイトメニュー
.検索
.オンライン状況
登録ユーザ: 0
ゲスト: 8
.
<< Prev
スカラー型
« INDEX »
PHP 文法編
Next >>
文字列関数
作成日:2006/05/10

1C.4 文字列(string)

 文字列には以下の3種類の表記があります。 意味論的にはPerlとほぼ同じですが、文法が微妙に異なっているので混同しないで下さい。

表記用例
単一引用符
$a = 'ABC';    // エスケープシーケンスと変数展開は記述できません。
$a = 'AB\'C';  // 但し、\'と\\のみ定義されています。
$a = 'ABC\\';  // この用法は、Perlと同じです。
二重引用符
$a = "Hello\nWorld."; // エスケープシーケンスが記述できます。
$a = "Hello $foo";    // 変数展開ができます。
ヒアドキュ メント構文
$a = <<<EOF
Hello\nWorld.
EOF;

echo <<<EOF
Hello $foo.
EOF;
// ヒアドキュメント構文にもエスケープシーケンスと変数展開があります。
// 上例(EOF)はラベルです。名前付けはPHPのラベルの規則に従います。
// 上例(<<<EOF)の後にはコメントは記述できません。
// 上例(EOF;)は必ず第1行がら初め、;の後には何も記述できません。
※PHPでは文字は1バイトと同じです。マルチバイト文字をネーティブにはサポートしてません。


1C.4.1 エスケープシーケンス

表記説明
\n ラインフィード(LFまたはアスキーの0x0A (10))
\r キャリッジリターン (CRまたはアスキーの0x0D (13))
\t 水平タブ(HTまたはアスキーの0x09 (9))
\\ バックスラッシュ
\$ ドル記号
\" 2重引用符
\NNN 8進数表記(NNN)の任意の1文字
NNNの正規表現: [0-7]{1,3}

用例:
echo "Hello\011world.";  // \tに同じ
\xNN 16進数表記(\xNN)の1文字です
NNの正規表現: [0-9A-Fa-f]{1,2}

用例:
echo "Hello\x09world.";  // \tに同じ
※ その他の文字をエスケープしようとした場合は、バッ クスラッシュ(\)が出力されます。


1C.4.2 変数展開

用例
スカラ型
echo "foo is $foo.";   // A型
echo "foo is ${foo}.";  // B型
echo "foo is {$foo}.";  // C型
配列(添字配列)
echo "1'st fruits is $fruits[1].";    // A型
echo "1'st fruits is ${fruits[1]}.";  // B型
echo "1'st fruits is {$fruits[1]}.";  // C型
配列(連想配列)
echo "A banana is $color['banana'].";    // A型 =>パースエラー
echo "A banana is ${color['banana']}.";  // B型
echo "A banana is {$color['banana']}.";  // C型
オブジェクト
echo "This board is $square->width meters.";    // A型
echo "This board is ${square->width} meters.";  // B型 =>パースエラー
echo "This board is {$square->width} meters.";  // C型
※ 上表のA型/B型/C型は便宜的なもので文法的用語とは関係ありません。
※ 安全サイドで言うと上表のC型を習慣的に使うのが良いように思います。
※ 配列のキーに裸の文字列(例えば:$color[banana])を使用するのは禁物です。キーは定数の可能性があります。


1C.4.3 部分文字構文

構文用例
string{オフセット位置}
※推奨
$first  = $str{0};
$second = $str{1};
$last   = $str{strlen($str)-1};
string[オフセット位置]
※非推奨(旧式)
$first  = $str[0];
$second = $str[1];
$last   = $str[strlen($str)-1];
<< Prev
スカラー型
« INDEX »>
Page Top
Next >>
文字列関数

.