TECH I.S.

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>"; ?>

関数で宣言された変数には LOCAL SCOPE があり、その関数内でのみアクセスできます。

ローカルスコープの変数:

<?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 ?>

また、PHP はすべてのグローバル変数を$GLOBALS[index]という配列に格納します。インデックスには変数の名前が格納されます。この配列は関数からもアクセス可能で、グローバル変数を直接更新することができます。

上記の例は、次のように書き直すことができます。

<?php $x = 5; $y = 10; function myTest(){  $GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y']; } myTest(); echo $y; // outputs 15 ?>


PHP staticキーワード

通常、関数が完了/実行されると、その変数はすべて削除されます。ただし、ローカル変数を削除したくない場合もあります。さらなる仕事のためにそれが必要です。

これを行うには、static変数を最初に宣言するときのキーワード:

<?php function myTest(){   static $x = 0;   echo $x;   $x++; } myTest(); myTest(); myTest(); ?>

次に、関数が呼び出されるたびに、その変数には、関数が最後に呼び出されたときに含まれていた情報が引き続き含まれます。

注:変数はまだ関数に対してローカルです。



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細