要点のまとめ
「$string = “abc”;」 → $stringという名前の変数に「abc」という文字列を格納
・変数名 — ドル記号($)+任意の名前
大文字と小文字は区別される — $aと$Aは別の変数
文字またはアンダースコア(_)で始まり、文字、数字、アンダースコアで構成
(例:$abcは使えるが、$123はエラー)
・型 — データ型の指定は不要(Javaでは「String s = “abc”;」のように型を定義)
型の自動変換機能に注意 — (例:「if (“1円” == 1)」はtrueとなる)
比較演算子「===」 — 型を含めて比較(例: 「if (“1円” === 1)」 )
・変数の出力
”$temp”(変数値の出力)/’$temp’(変数名の出力)の違い
ショートタグ(= $aaa ?>)は使わない → 「」とする
・変数の結合
結合演算子「.」 (例:$a . “@” . $b)
結合代入演算子「.=」
・変数の有効範囲(変数のスコープ) — 変数が使用可能な範囲のこと
・グローバルスコープ — スクリプト全体で有効
グローバル変数があちこちに増えると収拾がつかなくなるので注意
・ローカルスコープ — 一部で有効(ユーザ定義関数の中など)
・スーパーグローバル — フォーム入力値などが含まれるPHP特有の変数
$_GET、$_POST、$_SESSION → 「フォームとの連携」で説明
※詳しくは「ユーザ定義関数」を参照
変数とは、文字列や数値などの値を入れておく箱のようなものです。何度も同じ値を「echo “テスト”;」のように直接記述するとメンテナンスが面倒になるので、変数に値を格納(代入)しておき、必要に応じて参照したり更新します。
変数の使用例
変数の使用例を以下に示します。ここでは、$aのような簡素な名前の変数を使用していますが、実際には$pageや$titleのように、できるだけ意味のわかる変数名を付けておいた方が無難です。
<?php $a = "千葉県"; echo $a; ?>
○実行結果
変数名
変数名の付け方にはルールがあります。「$」で始まり文字またはアンダースコア(_)が続き、文字、数字、アンダースコアで構成されます。たとえば、「$1st」のような変数名は使用できません。また、大文字と小文字は区別されます。
<?php $1st = "千葉"; echo $1st; ?>
○実行結果
参照の代入
変数の前に「&」を付加して別の変数に代入すると、その変数の内容がコピーされるのではなく、参照が代入されます。つまり、元の変数と連動して値が変更されます。次の例では、$aの参照を$bに代入しているので、$aの値を変更すると、$bの値も変更されます。
<?php $a = "aaa"; $b = &$a; $a = "bbb"; echo $a; echo $b; ?>
○実行結果
変数のデータ型の自動変換
PHPの変数は、文字列なのか数値なのかを示すデータ型を指定せずに使用できます。これは、PHPが文脈に合わせてデータ型を判断してくれるからです。これは便利ですが、注意も必要です。たとえば、数値と文字列の変数を、データ型をどちらかに統一せずに比較すると、PHPによってどちらも数値に自動変換されて比較されます。次の例では、「==」という比較演算子を使用して「$aが$bと一致するか」を検査していますが、データ型の自動変換によって「1円」が数値の「1」と一致してしまいます。これを避けるには、データ型も含めて比較する演算子「===」を使用します。
<?php $a = "1円"; $b = 1; // 型が自動変換される if ($a == $b) { echo "一致"; } // データ型も含めて比較 if ($a === $b) { echo "データ型も一致"; } ?>
○実行結果
変数の出力
変数をダブルクォーテーション(”)で囲むと変数値が出力され、シングルクォーテーション(’)で囲むと変数名が出力されます。ダブルクォーテーションで変数を囲んで文字列と変数値を混在させる場合は、変数名の区切りを明確にできるように「千葉県{$b}」と変数名を波括弧で囲むこともできます。
<?php $a = "千葉県"; $b = "柏市"; echo "千葉県$b" . "<br />"; echo "千葉県{$b}に住んでいます" . "<br />"; echo '千葉県$b'; ?>
○実行結果
千葉県柏市に住んでいます
千葉県$b
変数はショートタグ(例:「= $aaa ?>」)という簡易的な記述法で出力することもできますが、その方法はXMLのタグと混在すると問題が発生するので、使わないようにしましょう。
変数の結合
変数は結合演算子「.」を使用して結合することができます。例を以下に示します。
<?php $a = "千葉県"; $b = "柏市"; echo $a . $b; ?>
○実行結果
結合代入演算子「.=」を使用しても文字列や変数を結合することができます。1つの変数の最後尾に、次々に文字列や変数の内容を追加していくイメージです。
<?php $a = "千葉県"; $a .= "柏市"; echo $a; ?>
○実行結果
変数の有効範囲
変数には有効範囲があります。これについては「ユーザ定義関数」の中で説明します。