変数とは

変数(へんすう)はプログラムでデータを記憶するための器で、表示する文字や計算したい数値を入れたりします。プログラムによっては何回も計算を繰り返したり、複雑な処理をするときに役立ちます。

合計金額の計算

日常の買い物で「金額」「個数」に毎回違う数字で「合計金額」を計算します。よって「金額」「個数」「合計金額」は変数になります。

合計金額 = 金額 x 個数

変数をプログラムで利用するには、人間がわかりやすいように変数名をつけます。

$price = 100;
$amount = 5;
$total_price = $price * $amount;

プログラムにはルールがある(PSR)

変数名は自由につけられますがプログラム言語によってルールがあり、PHPもルールに則ってプログラミングします。 このことをプログラミング全般的に「コーディング規約」などといいPSRと呼ばれます。

変数のルール

変数名の先頭に $ をつける

PHPの変数は先頭に $ 記号をつけ、その後に変数名を文字を記述します。

$変数名;

変数名のルール

変数名で利用できる文字は主に以下のとおりルールが決まっています。

  • 半角英数字
  • アンダースコア (_)
  • 大文字小文字は区別
  • 変数名の1文字目に数字は利用できない

変数はPSRに従っていれば問題ありませんが、最初うちはすべて「小文字」と 「_(アンダースコア)」で入力するとよいでしょう。慣れてくると「PSR」に沿った命名規則で入力してみましょう。

変数定義の例

$item;
$item_name;
$itemName;

エラーになる例

以下の例はプログラムがエラーになてしまうので注意しましょう。

//「$」がない
item;

//数字が先頭
$1_item;

//利用できない特殊文字
$item-name;
$item/name;
$item~name;

変数の代入

代入とは

変数にデータを入れることを代入といい「 = 」(イコール) を使って値を設定します。「 = 」は「同じ」という意味ではなく、右辺の結果を左辺に代入するという意味です。

// 変数 $drink に 文字列 "コーヒー" を代入
$drink = "コーヒー";

// 変数 $price に 数値 120 を代入
$price = 120;

変数の値を表示

変数に値を代入したらechoでデータを表示してみましょう。

$drink = "コーヒー";
echo $drink;
echo PHP_EOL;

$price = 120;
echo $price;
echo PHP_EOL;

print でも出力できる

echo と同じ結果を出力するのに print() があります。

$drink = "コーヒー";
print $drink;
print PHP_EOL;

printはもともと C言語で使われる関数ですが、PHP ではprintよりもechoを利用する傾向が高く、この講座では echo で主にプログラミングしていきます。

PHP_EOL は改行コード

メールやメモなどの文章で改行したときに「\n」という改行コードが入力されます。PHP_EOLは、PHP用の改行コードの定数です。

文字列と数値の結合

文字列と数値を結合してみます。

$message = $drink.'の値段は'.$price.'円です。';
echo $message;
print PHP_EOL;
結果
コーヒーの値段は150円です。

変数のデバッグ表示

デバッグ(Debug) は、変数の出力だけでなく、変数の詳細情報を調べることができます。PHPのデバッグ関数は、var_dump()var_export() などがあります。

var_dump()

var_dump(値);

$drink のデバッグ表示

変数「$drink」をvar_dump() を使って調べてみましょう。

var_dump($drink);

結果

コーヒーという値のほかに string(12) という情報も表示されました。これは「12バイトの文字列」という意味です。

string(12) "コーヒー"

$price のデバッグ表示

変数 $pricevar_dump() を使って調べてみましょう。

var_dump($drink);
結果

int(120) という情報が表示されました。これは「整数の120」という意味です。

int(120)

本番で var_dump() は実行しない

本番環境でプログラムを動かす場合 var_dump() をそのままにしておくと、データが公開されてしまうので危険です。var_dump() はデバッグのみで利用するようにしましょう。

定数

定数は変数のように値を代入できますが、再代入できない再定義できない仕様です。PHPの定数定義には、constdefine() があります。

const

const TAX_RATE = 0.1;
var_dump(TAX_RATE);
結果
float(0.1)

define()

define('TAX_RATE', 0.1);
var_dump(TAX_RATE);
結果
float(0.1)

演習問題

問題1

自分の「氏名」と「年齢」を変数に代入して、HTML表示してみましょう。

問題2

「氏名」と「年齢」の変数から、以下の文章で表示してみましょう。

(氏名)の年齢は(年齢)歳です。

問題3

最小値「-10」を定数で定義してみましょう。

PHP超入門