8

PHP の GLOBAL 変数と STATIC 変数の違いは何ですか? また、複数の関数で変数を使用する場合、どちらを使用するのが望ましいでしょうか?

ありがとう。

4

4 に答える 4

2

静的変数は、変数がクラスに属していることを意味しますが、そのクラスをインスタンス化することなく参照できます。グローバル変数はグローバル名前空間に存在し、任意のクラスの任意の関数から参照できます。グローバル変数は、誤用されたり、上書きされたり、誤って参照されたりするため、常に眉をひそめます。少なくとも静的変数では、を介して参照する必要があります。Class::var;

于 2012-04-22T07:31:08.377 に答える
2

グローバルは、他のスクリプトで定義されているか、同じスコープにないグローバル変数を取得するために使用されます。

例えば

<?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();
}
于 2012-04-22T07:37:51.857 に答える