PHP 変数
- 前のページ PHP 言語構造
- 次のページ PHP Echo / Print
代数のように
x=5 y=6 z=x+y
代数では、値(例えば 5)を保存するためにアルファベット(例えば x)を使用します
上の式 z=x+y から、zの値は11であることが計算できます
PHP では、これらの3つのアルファベット(例えば x)は変数。
注記:変数をデータを保存する容器として考えてください。
PHP 変数
代数のように、PHP 変数は値(x=5)や式(z=x+y)を保存できます
変数の名前は短いこともあります(例えば x と y)、またはより記述的な名前を取ることもあります(例えば carname、total_volume)。
PHP 変数の規則:
- 変数は $ 符号で始まり、その後は変数の名前が続きます
- 変数名はアルファベットまたはアンダースコアで始まる必要があります
- 変数の名前は数字で始まることはできません
- 変数の名前はアルファベット数字およびアンダースコア(A-z、0-9および_)で構成できます。
- 変数の名前は大文字小文字を区別します($yと$Yは異なる変数です)
注記:PHP変数の名前は大文字小文字を区別します!
PHP変数の作成
PHPには変数の作成コマンドはありません。
変数は最初に値が割り当てられるときに作成されます:
例
<?php $txt="Hello world!"; $x=5; $y=10.5; ?>
以上の文を実行すると、変数txtは"Hello world!"の値を保存し、変数xは5の値を保存し、変数yは10.5の値を保存します。
注記:変数にテキストとしての値を割り当てる場合は、その値を引用符で囲んでください。
PHPはタイプ緩い言語です。
上の例では、PHP変数のデータ型を教える必要はありません。
PHPは、その値に応じて、自動的に正しいデータ型に変換します。
CやC++、Javaなどの言語では、プログラマーは変数を使用する前にその名前と型を宣言する必要があります。
PHP変数スコープ
PHPでは、スクリプトのどこでも変数を宣言できます。
変数のスコープとは、変数が参照/使用できるスクリプトの部分を指します。
PHPには三種類の異なる変数スコープがあります:
- local(ローカル)
- global(グローバル)
- static(静的)
LocalとGlobalスコープ
関数外部宣言された変数はGlobalスコープを持ち、関数以外でのみアクセスできます。
関数内部宣言された変数はLOCALスコープを持ち、関数内でのみアクセスできます。
以下の例では、ローカルおよびグローバルスコープを持つ変数をテストしています:
例
<?php $x=5; // グローバルスコープ function myTest() { $y=10; // ローカルスコープ echo "<p>関数の内部の変数のテスト:</p>"; echo "変数xは:$x"; echo "<br>"; echo "変数yは:$y"; } myTest(); echo "<p>関数の外部の変数のテスト:</p>"; echo "変数xは:$x"; echo "<br>"; echo "変数yは:$y"; ?>
上の例では、二つの変数$xと$y、および関数myTest()があります。$xは関数の外部で宣言されたため、グローバル変数です。一方で、$yは関数内で宣言されたため、ローカル変数です。
myTest()関数の内部で二つの変数の値を出力すると、$yはローカルで宣言された値を出力しますが、$xの値を出力することができません。なぜなら、それが関数の外部で作成されたからです。
myTest()関数の外部で二つの変数の値を出力すると、$xの値が表示されますが、$yの値は表示されません。なぜなら、それがmyTest()内で作成されたローカル変数だからです。
注記:異なる関数で同じ名前のローカル変数を作成することができますが、ローカル変数はその変数が作成された関数だけで認識されます。
PHP global キーワード
global キーワードは、関数内でグローバル変数にアクセスするために使用されます。
これを実現するために、(関数内の)変数の前に global キーワードを使用してください:
例
<?php $x=5; $y=10; function myTest() { global $x,$y; $y=$x+$y; } myTest(); echo $y; // 出力 15 ?>
PHP は、$GLOBALS[index] という名前の配列にすべてのグローバル変数を同時に保存しています。インデックスには変数名が保存されています。この配列は関数内でもアクセスでき、グローバル変数を直接更新するために使用できます。
上記の例は以下のように書き換えられます:
例
<?php $x=5; $y=10; function myTest() { $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y']; } myTest(); echo $y; // 出力 15 ?>
PHP static キーワード
通常、関数が完了/実行された後、すべての変数が削除されます。しかし、時にはある特定のローカル変数を削除しない必要があります。これを実現するには、さらに多くの作業が必要です。
これを実現するために、変数を最初に宣言したときに使用してください static キーワード:
例
<?php function myTest() { static $x=0; echo $x; $x++; } myTest(); myTest(); myTest(); ?>
したがって、関数が呼び出されるたびに、この変数に格納されている情報は、関数が最後に呼び出されたときに含まれていた情報です。
注記:この変数はまだ関数のローカル変数です。
- 前のページ PHP 言語構造
- 次のページ PHP Echo / Print