PHP 変数のスコープ(参照できる有効範囲)〜未経験の為のPHPプログラミング講座〜

前回、前々回と関数についての記事を書きました。

今回は、関数にまつわる「スコープ(変数の参照できる有効範囲)」の解説を行います。

スコープ(参照できる有効範囲)とは?

スコープとは変数の参照できる有効範囲のことです。
スコープは2種類に分類できます。

  • スクリプト全体から参照可能なグローバルスコープ
  • 関数の中でのみ参照可能なローカルスコープ

一見、関数内の「$x」はグローバル変数の「$x = ‘グローバル’」に文字列を連結して「グローバルローカル」となりそうですが実際には下記の様な結果となります。

上記とは逆に関数内で宣言した「ローカル変数」を、関数外から参照することもできません。

global命令

関数内で関数外にある$xを参照したい場合は「global命令」を利用することにより可能となります。

global $x; で関数内のローカル変数 $x を強制的にグローバル変数 $x とみなすことができます。

global命令を利用しない場合

global命令を利用せず、関数の引数として $x を渡してやることで同じ結果となります。
※厳密にはglobal命令を利用したものと全く同じではありません。

スコープの便利さ

スコープを見てきましたが一見難しいように思いますが、関数外の変数$x(グローバル変数)と関数内の変数$x(ローカル変数)は別物として扱われます。

前回学習した「ユーザー定義関数」をで自作の関数を作成時、簡単な変数名($iや$xなど)を利用している場合、変数の上書きをしてしまわないよう注意が必要ですが、グローバルスコープ、ローカルスコープのおかげで関数に関しては「変数の上書き」の心配がありません。

created by Rinker
PHP7の基本構文から、クラス、DB連携、セキュリティ対策まで、しっかり習得! PHPプログラミングの標準教科書『独習PHP』が、最新のPHP7に対応。PHPでWebページ/アプリケーションを開発する際に必要な基礎的な知識、PHPの基本構文から、クラス、データベース連携、セキュリティまで、詳細かつ丁寧に解説します。
created by Rinker
時間がなくたって、プログラミングは学べます。学習を躊躇していた人たちに、既存の入門書で挫折した人たちに、「これならできる!」の最短カリキュラムを、土日の14時間で提供。まったくのプログラミング初心者が簡単なWebデータベースアプリを構築できるまでの成長コースを、手取り足取り、導きます。

コメントする

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)