PHPにおける比較static,global,GLOBALS
1685 ワード
詳細
結果は次のとおりです.
i:1
k:1
i:2
k:2
i:
k:2
------------------
i:1
k:3
i:2
k:4
i:
k:4
------------------
m:0
n:0
m:1
n:
------------------
x:
static役割ドメインfunction classでは、同じfunction classが同じ変数を共有する
Global、GLOBALSグローバル役割ドメイン
globalは変数への参照を生成します
GLOBALS直接操作変数
だからunset global変数の時、グローバル変数は変えないで、GLOBALSは直接変数を削除しました
';
echo 'k:', ++$k, '
';
}
test1();
test1();
echo 'i:', $i, '
';
echo 'k:', $k, '
';
echo '------------------
';
function test2() {
global $k;
static $i = 0;
echo 'i:', ++$i, '
';
echo 'k:', ++$k, '
';
}
test2();
test2();
echo 'i:', $i, '
';
echo 'k:', $k, '
';
$m = 0;
$n = 0;
function test3() {
global $m;
echo 'm:', $m++ , '
';
echo 'n:', $GLOBALS['n']++ , '
';
unset($m, $GLOBALS['n']);
}
echo '------------------
';
test3();
echo 'm:', $m, '
';
echo 'n:', $n, '
';
echo '------------------
';
static $x = 0;
function test4() {
echo 'x:', $x++ , '
';
}
test4();
結果は次のとおりです.
i:1
k:1
i:2
k:2
i:
k:2
------------------
i:1
k:3
i:2
k:4
i:
k:4
------------------
m:0
n:0
m:1
n:
------------------
x:
static役割ドメインfunction classでは、同じfunction classが同じ変数を共有する
Global、GLOBALSグローバル役割ドメイン
globalは変数への参照を生成します
GLOBALS直接操作変数
だからunset global変数の時、グローバル変数は変えないで、GLOBALSは直接変数を削除しました