プロが教える店舗&オフィスのセキュリティ対策術

globalと$GLOBALSの違いは、連想配列かそうでないかしかないのでしょうか。
大量に使う場合、どちらを使っても動作には差はでないでしょうか。

<?php
$s = "グローバルスコープ"; //グローバルスコープ
function scope_test0(){
echo $s; // 何も表示されない(ローカルスコープ)
}
scope_test0();


/* globalを使う */
$a = "スコープの違い";
function scope_test1(){
global $a; //ここでglobalを宣言、スコープが違う変数を参照可能に
echo $a; //スコープの違い
};
scope_test1();


/* $GLOBALSを使う */
$b = 3;
$c = 4;
function scope_test2(){
$GLOBALS["c"] = $GLOBALS["b"] + $GLOBALS["c"];
}
scope_test2();
echo $c; //7
?>

A 回答 (1件)

$GLOBALSはスーパーグローバル変数です(定義済みの変数()。



http://www.php.net/manual/ja/reserved.variables. …

globalキーワードは、あくまでもその関数内で使うその変数のスコープをグローバルにするというだけのものです(その変数自体がスクリプト全体に対してブローバルになるわけではありません)。

http://www.php.net/manual/ja/language.variables. …
    • good
    • 0
この回答へのお礼

ありがとうございました。参考になりました。

お礼日時:2012/05/03 20:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!