PHP変数のスコープ
PHP変数のスコープ
PHPでは、スクリプト内のどこでも変数を宣言できます。
変数のスコープは、変数を参照/使用できるスクリプトの一部です。
PHPには、3つの異なる変数スコープがあります。
- local
- global
- static
グローバルおよびローカル スコープ
関数の外で宣言された変数には GLOBAL SCOPE があり、関数の外でのみアクセスできます。
例
グローバル スコープの変数:
<?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>";
?>
ローカル変数は、それらが宣言されている関数によってのみ認識されるため、異なる関数で同じ名前のローカル変数を持つことができます。
PHPグローバルキーワード
global
キーワードは、関数内からグローバル変数にアクセスするために使用されます。
これを行うには、global
変数の前のキーワード (関数内):
例
<?php
$x = 5;
$y = 10;
function myTest(){
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // outputs 15
?>
$GLOBALS[index]
という配列に格納します。インデックスには変数の名前が格納されます。この配列は関数からもアクセス可能で、グローバル変数を直接更新することができます。
上記の例は、次のように書き直すことができます。
例
<?php
$x = 5;
$y = 10;
function myTest(){
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y; // outputs 15
?>
PHP staticキーワード
通常、関数が完了/実行されると、その変数はすべて削除されます。ただし、ローカル変数を削除したくない場合もあります。さらなる仕事のためにそれが必要です。
これを行うには、static
変数を最初に宣言するときのキーワード:
次に、関数が呼び出されるたびに、その変数には、関数が最後に呼び出されたときに含まれていた情報が引き続き含まれます。
注:変数はまだ関数に対してローカルです。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。