変数は、情報を格納するための「コンテナ」です。
PHPでは、変数は $ 記号から始まって、その後に変数名が続きます:
上のステートメントを実行後は、変数$txtにはHello world!が、変数$$xには5が、 変数$yには10.5が設定されます。
注: 変数にテキスト値を代入するときは、値の前後を引用符で括ります。
注: 他のプログラミング言語とは異なり、PHPには変数を宣言するためのコマンドはありません。 最初に値を代入した時に作成されます。
変数は、データ格納用のコンテナと考えてください。
変数は、短い名前(x や y など)や、よりわかりやすい名前(age、carname、total_volume)にすることができます。
PHP変数のルール:
PHPの変数名は、大文字と小文字が区別されることに注意してください!
PHPのecho文は、よくデータを画面に出力するために使用します。
次の例は、テキストと変数の出力方法を示しています:
次の例は、上の例と同じ内容を出力します:
次の例は、2つの変数の和を出力します:
注: 次の章では、echoステートメントと画面への出力方法の詳細を学習します。
上の例では、PHPに変数のデータ型を指定していないことに注意してください。
PHPは、その値に応じて自動的に変数を正しいデータ型に変換します。
C、C ++、Javaなどの他の言語では、プログラマは変数の名前と型を宣言してから使用しなければなりません。
PHPでは、スクリプト内のどこでも変数を宣言できます。
変数のスコープは、変数が参照/使用することのできるスクリプトの場所です。
PHPには3つの変数スコープがあります:
関数の外で宣言した変数はグローバルスコープを持ち、関数の外でしかアクセスできません:
<?php
$x = 5; // global scope
function myTest() {
// using x inside this function will generate an error
echo "<p>Variable x inside function is: $x</p>";
}
myTest();
echo "<p>Variable x outside function is: $x</p>";
?>
例の実行 »
関数の中で宣言した変数はローカルスコープを持ち、その関数内でしかアクセスできません:
<?php
function myTest() {
$x = 5; // local scope
echo "<p>Variable x inside function is: $x</p>";
}
myTest();
// using x outside the function will generate an error
echo "<p>Variable x outside function is: $x</p>";
?>
例の実行 »
ローカル変数は、それが宣言されている関数でしか認識されない、他の関数内に同じ名前のローカル変数を宣言することができます。
グローバル・キーワードは、関数内からグローバル変数にアクセスするために使用します。
これを行うためには、変数の前に global キーワードを使用します(関数内):
<?php
$x = 5;
$y = 10;
function myTest()
{
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // outputs 15
?>
例の実行 »
PHPはまた、すべてのグローバル変数を $GLOBALS[index] という配列にも格納します。 indexは変数名です。この配列は関数内からもアクセスでき、グローバル変数を直接更新することも可能です。
上の例は次のように書き直すことができます:
<?php
$x = 5;
$y = 10;
function myTest()
{
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y; // outputs 15
?>
例の実行 »
通常は、関数の実行が完了すると変数はすべて削除されてしまいます。しかし、時には、ローカル変数を削除したくない場合もあります。 タスクをさらに継続したい時に、それが必要となってきます。
これを行うためには、変数を最初に宣言するときに static キーワードを使用します:
その後、関数が呼び出されるたびに、その変数は、関数が最後に呼び出されたときの情報を保持するようになります。
注: 変数は、引き続きその関数のローカル変数です。