« PHP:require()関数・require_once()関数 | メイン | PHP:substr_replace()関数 »

2005年10月17日

PHP:global

globalは、グローバル変数を宣言します。
functionで作成したユーザー定義関数内で使用された変数は、functionの外では通常使用できません。同じように、functionの外で作成された変数は、function内では通常使用できません。そういった場合に、globalを宣言して、変数がグローバル変数であることを宣言します。

<?php

$name = "STUDIO WING";
printName();  //ユーザー定義関数を実行

function printName(){
    print $name;
}

?>

上記の場合では、変数$nameがfunctionの外で定義されているので、printName()の結果、何も出力されません。関数printName()内で変数$nameを認識させるには次のようにします。

<?php

$name = "STUDIO WING";
printName();  //ユーザー定義関数を実行

function printName(){
    global $name;
    print $name;
}

?>

※上記の結果、「STUDIO WING」が出力されます。


■上記とは逆に、ユーザー定義関数内で設定した変数を、ユーザー定義関数外で使用したい場合には、スーパーグローバル変数「$GLOBAL」を使用します。

function setNum($num){
    $newNum = $num*1000;
    $GLOBAL['newNum'] = $newNum;
}

setNum(5);
print $newNum;

※上記の結果、「5000」を出力します。

※$GLOBALの注意点
・$GLOBALは他のスーパーグローバル変数$_SERVERなどのように「_」(アンダースコア)が入らないので注意してください。
・$GLOBALの設定方法は、function内で「$GLOBAL["使用したい変数名"]」という風に設定します。

投稿者 wing : 2005年10月17日 22:20

コメント