Home > PHP > PHP 定義済みの変数

PHP 定義済みの変数

  • 2012-05-03 (Thu) 08:55
  • PHP
GWも後半。どこもかしこも渋滞模様です。
昨日、観賞した「New Year's Eve」は、とても味わい深いものでした。
何人かのドラマを描き、新年を迎えるカウントダウンのそれぞれの思いを描写していました。ほのぼのとした映画で、感動を味わいたい方は必見です。

見る人によってジーンとくる人もあれば、ふ~んと鼻であしらう人もいるかも知れませんが、それが映画というものでしょう。
それぞれの感じ方が違って、映画もいろいろなものが登場するでしょうから・・。

今日から定義済みの変数について紹介します。一般的にはスーパーグローバル変数とも呼ばれます。PHPでは、欠かせない予約済みの変数と考えてください。
このスーパーグローバルは、スクリプト全体を通して、すべてのスコープで使用可能な変数のことで、関数やメソッドの内部からアクセスする時にも「global $variable」などと記述する必要はありません。
第19回 $GLOBALS
$GLOBALSは、グローバルスコープで使用可能なすべての変数への参照が可能です。また、連想配列の一つです。
参照の方法は次のようになります。
$GLOBALS["変数名"];

どこからも参照できるので、スコープ(適用範囲)を考えなくても良い、とても便利な変数となります。
簡単な例を見てみます。
<?php
 function test(){
  $foo = "Local variable"; //ローカル変数

  echo 'グローバル範囲の変数$foo:' . $GLOBALS["foo"] . "<br>\n";
  echo '現在の範囲の変数$foo:' . $foo . "<br>\n";
 }
 $foo = "Content Display";
 test();
?>

20120503-p05.jpg
上のコードを見てもらうと分かるように、$fooという変数が2つあります。1つは、関数function test()の内部、もう一つがfunction test()の後ろにあります。どちらも異なる文字列を代入しています。
最後の test(); を実行した場合、関数testが実行され、内部に記述されているechoで出力します。
最初のechoでは、$GLOBALS["foo"]となっているので、関数の外にある$fooを参照します。2つ目のechoでは、単に$fooと記述されているので、関数の内部だけしか参照できないので関数testの中の$fooを参照します。
よって、2つの結果はそれぞれのアクセスした文字列を参照します。

一般に、グローバル変数はglobalというキーワードを用いて使用しますが、$GLOBALSを使うことによって、簡便に記述できるというメリットがあります。
Comment Form
★下記に2つの英単語をスペースで区切って入力してください

Home > PHP > PHP 定義済みの変数

Search
Feeds

Page Top