◆ 文字列

文字列とは、まさに普通に読み書きする文字の集合(テキスト)を意味します。PHPでは、文字列に関する関数があらかじめ用意され、こうした関数を利用することで、置換えや分割、結合などを行います。

文字列データ
文字列は、変数の文字列 でも述べたとおり、ダブルコーテーション、シングルコーテーション、あるいはヒアドキュメントという3つの形で定義されます。
ダブルコーテーション  "初心者のための PHP入門"
シングルコーテーション '初心者のための PHP入門'
ヒアドキュメント    <<<初心者のための PHP入門
ヒアドキュメントは、先頭にキーワードを指定し、次にそのキーワードが出てくるまでの複数行の文字列を改行文字を含めて、1つの文字列として扱います。あまり一般的ではないので、通常は、ダブルおよびシングルコーテーションを用います。
  $subtitle = "初心者のための PHP入門\n";
文字列の中で「\n」とあるのは「改行」を意味し、本来ならば「バックスラッシュ」を書きたいところですが、残念ながらコンピュータから入力できないため、「\」と書きました。
実際に表示されるときに、改行されるという保証はありません。念のため。
なお、「\」を使った記述は、ダブルコーテションの中以外には使えません。シングルコーテーションで囲む場合には、「\\」と2つ続けて記述します。
文字列の中でダブルコーテーションなどを表示したい場合には 「\」をつけてエスケープしなければなりません。
  $subtitle = "初心者のための \"PHP入門\"\n";
以下が、エスケープ文字「\」を利用してダブルコーテーションを表示させた Webブラウザの出力結果です。
エスケープ文字バックシュラッシュを使って引用符を表現した Mozillaブラウザの画像
PHP入門」の前後に引用符としてダブルコーテーションが表示されます。
エスケープ文字がない場合には、エラーとして画面に表示されます。
エスケープすべき文字
PHPでは、文字列データを表現するため、文字列に含まれる文字種の中にエスケープしなければならないものがあります。この場合、その文字の先頭で \ を記述します。
エスケープ文字種とその意味
文字種意味
' シングルコーテーション
" ダブルコーテーション
\ バックスラッシュ
t タブ記号
n 改行記号
$ ドル記号
r キャリッジリターン
文字列データの連結
変数に代入された文字列は、他の変数に代入された文字列を結合して、1つの文字列として扱うことが可能です。その場合、文字列変数を、ピリオド「 . 」、あるいはプラス「 + 」などの記号で結合します。
<?php
  $beginner = "初心者のための";
  $webpage =  "ホームページ作り";
     print($beginner. $webpage);
?>
上記スクリプトの実行結果は以下のとおりです。
エスケープ文字バックシュラッシュを使って引用符を表現した Mozillaブラウザの画像
2つの文字列変数を1つの文字列として変数に格納し、その結果を出力しています。連結する文字列変数の数に制限はありません。いくつでも結合することが可能です。
当講座では、このような文字列の連結には、基本的に「ピリオド」を使って解説します。
文字列データの置換
文字列データから、ある文字列を取り出して異なる別の文字列に変換することを「文字列の置換」と呼びます。PHPでは、こうした一連の置換作業を、str_replace()関数を利用します。
str_replace()関数は、
 str_replace("置換対象の文字列","置換する文字列","最初の文字列");
それぞれの文字列は変数でも可能です。以下はそのサンプルコードです。
<?php
  $beginner = "初心者のためのホームページ作り";
  $replace =  "ホームページ作り";
  $scriptphp = "PHP入門";
     $word = str_replace($replace, $scriptphp, $beginner);
     print($word);
?>
上記スクリプトの実行結果は以下のとおりです。
str_replace()関数を使って特定の文字を置き換えて表現した Mozillaブラウザの画像
ご覧のように「ホームページ作り」という文字列だけを抜き取って「PHP入門」という異なる文字列に置換えた結果を表わしています。
文字列データを扱う「関数」はこれ以外に、あらかじめ70あまりが定義されています。このページでそれら全部を紹介することにはやや無理がありますので、関数リファレンス を参照してください。


This Page is HTML4.01 Valid! 最新更新日 2004年1月18日   最新更新日 2004年4月1日
Copyright(C) 2002〜2004 banban@scollabo.com