My Photo

« 輪廻のラグランジェ、視聴中止 | Main | PHPメモ008:include,require »

January 26, 2012

PHPメモ007:スコープ

PHPの変数はほとんどがグローバルスコープ。
CやJavaではブロック内で宣言した変数のスコープはブロック内に限られるが、PHPではブロック内で初めて出てきた変数もグローバルスコープになる。

{
	$a = 10;
}
echo $a;	// 10と出力される

関数では関数内で使用される変数はすべて関数内のみのローカルスコープとなる。

サンプルコード
$a = 10;

function foo() {
	$a = 20;
	
	echo "\$a=${a} in foo()<br />\n";
}

echo "\$a=${a}<br />\n";
foo();
出力
$a=10<br />
$a=20 in foo()<br />

クラス内の変数についてはクラスのところで説明。

global

関数内からグローバルスコープの変数にアクセスしたい場合、globalキーワードを使ってグローバル変数を宣言する。
ただし、可読性が悪くなったりバグの原因になる可能性があるのでやたらめったら使うものではない。というかなるべく使わないほうがいいと思う。

サンプルコード
$b = 30;

function bar() {
	global $b;
	
	echo "global \$b=${b} in foo()<br />\n";
	
	$b = 40;
}

bar();
echo "\$b=${b}<br />\n";
出力
global $b=30 in foo()<br />
$b=40<br />

« 輪廻のラグランジェ、視聴中止 | Main | PHPメモ008:include,require »

PHP」カテゴリの記事

Comments

Post a comment

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26461/53830017

Listed below are links to weblogs that reference PHPメモ007:スコープ:

« 輪廻のラグランジェ、視聴中止 | Main | PHPメモ008:include,require »

May 2017
Sun Mon Tue Wed Thu Fri Sat
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof