変数は、データを一時的に保存するための「箱」です。PHPでは変数名の先頭に $(ドルマーク)を付けて宣言します。他の多くの言語と異なり、型の宣言は不要で、代入した値に応じて自動的に型が決まります。
基本的な使い方
構文
$変数名 = 値;
PHP
<?php
// 文字列を代入
$name = "太郎";
// 数値を代入
$age = 25;
// 小数を代入
$height = 170.5;
// 真偽値を代入
$is_student = true;
echo $name . "さんは" . $age . "歳です。";
echo "<br>";
echo "身長: " . $height . "cm";
?>
実行結果
太郎さんは25歳です。
身長: 170.5cm
変数は宣言と同時に値を代入するのが一般的です。PHPでは変数を事前に宣言する必要がなく、初めて値を代入した時点で変数が作成されます。
変数の命名ルール
変数名にはルールがあります。これを守らないとエラーになります。
- 変数名は
$で始める(必須) - 先頭文字は英字またはアンダースコア(
$1nameは不可) - 英字・数字・アンダースコアのみ使用可能
- 大文字と小文字は区別される(
$Nameと$nameは別の変数)
PHP
<?php
// 正しい変数名
$user_name = "太郎";
$userName = "花子"; // キャメルケース
$_private = "秘密"; // アンダースコア始まり
$item2 = "商品";
// 間違った変数名(エラーになる)
// $2item = "NG"; // 数字始まりは不可
// $user-name = "NG"; // ハイフンは使えない
// $user name = "NG"; // スペースは使えない
?>
命名規約のベストプラクティス
PHPではスネークケース($user_name)とキャメルケース($userName)の両方が使われます。フレームワークの規約に従うのがベストですが、プロジェクト内で統一することが最も重要です。
変数の上書きと型の変化
PHPは動的型付け言語なので、同じ変数に異なる型の値を代入できます。
PHP
<?php
$value = 100; // int型
echo gettype($value); // integer
echo "<br>";
$value = "百"; // string型に変更
echo gettype($value); // string
echo "<br>";
$value = 3.14; // float型に変更
echo gettype($value); // double
?>
実行結果
integer
string
double
意図しない型変換に注意
PHPは自動的に型変換(型キャスト)を行うため、"5" + 3 は 8 になります。この暗黙の型変換はバグの原因になりやすいため、===(厳密比較)を使う習慣をつけましょう。
変数の存在確認と削除
PHP
<?php
$name = "太郎";
// 変数が存在するか確認
var_dump(isset($name)); // bool(true)
var_dump(isset($unknown)); // bool(false)
// 変数を削除
unset($name);
var_dump(isset($name)); // bool(false)
// 空かどうかを確認
$empty_str = "";
var_dump(empty($empty_str)); // bool(true)
?>
まとめ
- PHPの変数は
$で始め、型宣言は不要(動的型付け) - 変数名は英字・数字・アンダースコアのみで、大文字小文字は区別される
- 同じ変数に異なる型の値を再代入できるが、意図しない型変換に注意
isset()で存在確認、unset()で削除、empty()で空チェック