PHP の GLOBAL 変数と STATIC 変数の違いは何ですか? また、複数の関数で変数を使用する場合、どちらを使用するのが望ましいでしょうか?
ありがとう。
静的変数は、変数がクラスに属していることを意味しますが、そのクラスをインスタンス化することなく参照できます。グローバル変数はグローバル名前空間に存在し、任意のクラスの任意の関数から参照できます。グローバル変数は、誤用されたり、上書きされたり、誤って参照されたりするため、常に眉をひそめます。少なくとも静的変数では、を介して参照する必要があります。Class::var;
グローバルは、他のスクリプトで定義されているか、同じスコープにないグローバル変数を取得するために使用されます。
例えば
<?php
$g_var = 1;
function test() {
var_dump($GLOBAL['g_var']);
global $g_var;
var_dump($g_var);
}
static は、スクリプト全体の寿命を持つ var を定義するために使用され、init は 1 回だけです。
例えば
<?php
function test() {
static $cnt = 0;
$cnt ++;
echo $cnt;
}
$i = 10;
while (-- $i) {
test();
}