ホームページ >バックエンド開発 >PHPチュートリアル >PHPでの静的変数の使い方、ローカル静的変数とグローバル静的変数の違いを詳しく解説
静的変数は関数スコープ内にのみ存在します。次回この関数が呼び出されるとき、変数の値は保持されます
静的変数は関数スコープ内にのみ存在します。スコープ内では、静的変数はスタック上にのみ存在します。一般に、関数内の変数 (ローカル変数など) は関数の終了後に解放されますが、静的変数は解放されません。次回この関数が呼び出されるとき、変数の値は保持されます。
静的変数の基本的な使い方
1. クラス内で静的変数を定義する
【アクセス修飾子】
static $変数名2. 静的変数にアクセスする方法; self::$static変数名、クラス名::$static変数名
クラス外からアクセスする場合:クラス名::$static変数名というメソッドがある
例
class Child{ public $name; //这里定义并初始化一个静态变量 $nums public static $nums=0; function construct($name){ $this->name=$name; } public function join_game(){ //self::$nums 使用静态变量 self::$nums+=1; echo $this->name."加入堆雪人游戏"; } } //创建三个小孩 $child1=new Child("李逵"); $child1->join_game(); $child2=new Child("张飞"); $child2->join_game(); $child3=new Child("唐僧"); $child3->join_game(); //看看有多少人玩游戏 echo "<br/> 有这".Child::$nums;
1 .関数が呼び出されて
しても変化しませんが、変数は存在し続けますが、使用することはできません。それを定義する関数が再度呼び出された場合、その関数は引き続き使用でき、前の呼び出し後に残った値は保存されます2. 静的ローカル変数は 1 回のみ初期化されます3. 静的
プロパティ
は次のように初期化されます。 one 式では文字値や定数を使用できません。ローカル静的変数が初期値なしで定義されている場合でも、システムは自動的に初期値 0 (数値変数の場合) または null 文字 (文字変数の場合) を割り当てます。静的変数の初期値は 0 です。 4. 関数が複数回呼び出され、呼び出し間で特定の変数の値を保持する必要がある場合は、静的ローカル変数を検討できます。グローバル変数を使用して上記の目的を達成することもできますが、グローバル変数は予期しない副作用を引き起こす場合があるため、ローカル静的変数を使用することをお勧めします。
function test() { static $var = 5; //static $var = 1+1;就会报错 $var++; echo $var . ' '; } test(); //2 test(); //3 test(); //4 echo $var; //报错:Notice: Undefined variable: var
//全局变量本身就是静态存储方式,所有的全局变量都是静态变量 function static_global(){ global $glo; $glo++; echo $glo.'<br>'; } static_global(); //1 static_global(); //2 static_global(); //3 echo $glo . '<br>'; //3
以上がPHPでの静的変数の使い方、ローカル静的変数とグローバル静的変数の違いを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。