文字列は、2組のデリミタの1つを用いて指定できます。
文字列が2重引用符(")で括られた場合, 文字列の中の変数は展開されます。 (ただし、いくつかの解釈時の制約を受けます) C や Perl と同じく以下のようにバックスラッシュ文字 ("\") を特別な文字を指定するために使用することができます。
表 6-1. エスケープされた文字
記述 | 意味 |
---|---|
\n | 改行 |
\r | 複改 |
\t | 水平タブ |
\\ | バックスラッシュ |
\$ | ドル記号 |
\" | 2重引用符 |
\[0-7]{1,3} | 正規表現にマッチする文字シーケンスは、8進数表記の1文字です。 |
\x[0-9A-Fa-f]{1,2} | 正規表現にマッチする文字シーケンスは、16進数表記の1文字です。 |
他の文字をエスケープすることも可能ですが、 警告レベルを最高にした場合には警告が発生します。
文字列を区切る2番目の方法はシングルクオート文字("'")を使う方法です。 ある文字列が引用符で括られている場合、 理解されるエスケープ文字は、"\\" および "\'" のみです。 引用符とバックスラッシュを引用符で括られた文字列で 使用可能とする際に便利なようになっています。 変数は、引用符で括られた文字列の中では展開されません。
文字列を区切る別の方法は、ヒアドキュメント構文を使用することです。 (">>>") ある ID を >>> の後に指定し、 文字列を置いた後で、同じIDによる引用を閉じるために置きます。
例 6-1. ヒアドキュメントによる文字列引用の例
|
注意: ヒアドキュメントは PHP 4 で追加されました。
文字列は、'.' (ドット)結合演算子で結合することが可能です。 '+' (付加)演算子はこの例では出てこないことに注意して下さい。 詳細については、文字列演算子 を参照下さい。
文字列の中の各文字には、C言語の構文のように 数字を添字とした文字の配列として文字列を取り扱うことにより アクセス可能です。以下の例を参照下さい。
例 6-2. 文字列の例
|
数値として文字列が評価された時、結果の値と型は次のように 定義されます。
文字列は、'.'、'e'、'E' のどれかが含まれている場合は double、 それ以外は整数として評価されます。
文字列の最初の部分により値が決まります。 文字列が、有効な数値データから始まる場合、この値が使用されます。 その他の場合、値は 0 (ゼロ) となります。 有効な数値データは符号(オプション)の後に、1つ以上の 数字(オプションとして小数点を一つ含む)、オプションとして 指数部が続きます。 指数部は 'e' または 'E' の後に一つ以上の数字が続く形式です。
最初の式が文字列の場合、変数の型は2番目の式に依存します。
1 2 $foo = 1 + "10.5"; // $foo は double です (11.5) 3 $foo = 1 + "-1.3e3"; // $foo は double です (-1299) 4 $foo = 1 + "bob-1.3e3"; // $foo は integer です (1) 5 $foo = 1 + "bob3"; // $foo は integer です (1) 6 $foo = 1 + "10 Small Pigs"; // $foo は integer です (11) 7 $foo = 1 + "10 Little Piggies"; // $foo は integer です (11) 8 $foo = "10.0 pigs " + 1; // $foo は integer です (11) 9 $foo = "10.0 pigs " + 1.0; // $foo は double です (11) 10 |
この変換に関する詳細は、UNIXマニュアル strtod(3) を参照下さい。
本節の例を試したい場合、その例をカットアンドペーストしてから 動作を確認するために次の行を挿入して下さい。
1 2 echo "\$foo==$foo; type is " . gettype( $foo ) . "<br>\n"; 3 |