ホームページ  >  記事  >  バックエンド開発  >  PHPの静的変数と変数の違い

PHPの静的変数と変数の違い

(*-*)浩
(*-*)浩オリジナル
2019-09-25 09:55:083293ブラウズ

PHPの静的変数と変数の違い

通常の変数: 関数の実行後に自動的に破棄されます;

静的変数: 破棄されず、最後の値が保持されます

おすすめマニュアル : php 完全独学マニュアル

変数の前に static を付けると静的変数 (static 変数) になります。 (推奨学習: PHP プログラミングの入門から習熟まで )

静的グローバル変数と通常のグローバル変数の違い: 静的​​グローバル変数は、他のファイルで参照されないように 1 回だけ初期化されます。

Static は、public、protected、および private の 3 つの属性形式とは何の関係もありません。これらは並列ではありません。

public、protected、および private も設定できます。 to static

public static $a;
private static $b;

静的変数には次の特性があります:

関数内で静的変数が定義されると、この変数は次回から使用されません。関数が終了した場合でも呼び出され、最後に呼び出したときの残りの値が使用されます。

また、変数は関数終了時には存在し続けませんが、関数外では使用できません。

おすすめの関連記事:
1.php の静的変数が破棄されるタイミング
2.PHP の静的変数とグローバル変数の違いは何ですか?
関連ビデオの推奨事項:
1.Dugu Jiijian (4)_PHP ビデオ チュートリアル

したがって、静的変数の適用タイミングは次のとおりです。

関数が複数回呼び出され、特定の変数の値を呼び出し間で保持する必要がある場合は、静的ローカル変数を検討できます。

グローバル変数を使用して上記の目的を達成することもできますが、グローバル変数は予期しない副作用を引き起こす場合があるため、ローカル静的変数を使用することをお勧めします。

静的属性の基本的な機能は、通常の属性とは異なり、静的属性は前の値を記憶することです。例:

function a() {
  $a = 1;
  $a += 1;  
  echo $a; 
}  
//然后连续3次调用这个函数测试下
a();
a();
a();
上面代码会输出 2 2 2
 
改成静态属性:
 
function a() {
  static $a = 1;
  $a += 1;  
  echo $a; 
}  
//然后连续3次调用这个函数测试下
a();
a();
a();

上記の出力は 2 3 4

Forクラス内で定義された静的変数。簡単に言うと、クラスの静的メンバーをインスタンス化せずに直接使用できます。

以上がPHPの静的変数と変数の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。