この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:2
ページ更新者:atom
更新日時:2026-05-13 07:19:23

タイトル: 変数

変数とはデータを格納、参照するもの。

必要に応じで格納したデータを参照する。

格納したデータは値を代入することで書き換えることができる。

■変数の宣言

【構文】

$変数名;

【例】

$var;

■変数に値を代入

【構文】

$変数名 = 値;

【例】

$var = 1;

PHPの変数の特徴

  • 変数名は $ で始まる
  • 動的型付け — 型宣言不要。代入された値で型が決まる
  • 大文字小文字を区別$User$user は別)
  • 関数名は大文字小文字を区別しないのと対照的
  • 変数名の1文字目は英字またはアンダースコア。数字は不可

変数名の命名規則

OKNG
$user$1user(数字始まり)
$user_name$user-name(ハイフン不可)
$_private$user name(空白不可)
$userName(lowerCamelCase推奨)$@var(記号不可)

変数の型(自動判定される)

整数 (int)$n = 100;
浮動小数 (float)$pi = 3.14;
文字列 (string)$s = "Hello";
真偽値 (bool)$flag = true;
配列 (array)$arr = [1, 2, 3];
オブジェクト$obj = new User();
null$x = null;

変数のスコープ

  • グローバル変数: 関数の外で宣言。関数内では global 宣言が必要
  • ローカル変数: 関数の中で宣言。関数内のみ有効
  • 静的変数 (static): 関数呼び出し間で値を保持
  • スーパーグローバル変数: $_GET, $_POST, $_SESSION 等。どこからでも参照可

$count = 0;  // グローバル

function inc() {
    global $count;  // 関数内でグローバル参照
    $count++;
}

function counter() {
    static $n = 0; // 呼び出し間で保持
    $n++;
    return $n;
}

変数の文字列展開

$name = "Taro";

// ダブルクォート: 展開される
echo "Hello, $name";       // Hello, Taro
echo "Hello, {$name}san";  // 中括弧で範囲明示

// シングルクォート: 展開されない
echo 'Hello, $name';       // Hello, $name

参照渡し

$a = 1;
$b = &$a;   // $b は $a の参照
$b = 10;
echo $a;    // 10

注意点

  • 未定義変数の参照はNotice/Warningが出る(PHP 8では Warning)。isset() でチェック
  • $と変数名の間に空白を入れない($ var はエラー)
  • PHP 7以降の型宣言: 関数引数や戻り値に型を明示可(変数自体は動的型付けのまま)
  • strict_types: declare(strict_types=1); でより厳しい型チェック

関連