PHP サーバサイド

PHP:ローカル変数とグローバル変数について

初級的な内容だが、phpの変数のスコープについてまとめてみた。要はローカル変数グローバル変数の違いだ。

 

ローカル変数とは


"local":「局所的な」変数という意味で文字通り、特定の区間において有効な変数だ。

phpにおける局所的な区間とは"関数"だ。

そう、ローカル変数とは簡単に言うと"関数内で宣言された変数"になる。

ローカル変数の特徴とは、「外部からその変数を利用できない」ことだ。以下の例を見て欲しい

 

関数内で定義された$numは関数外からアクセスすると、「そんな変数定義されていないよ」と言われる。

要するに、外界から隔絶された変数といえる。

 

グローバル変数


"global":「包括的な」変数。察しはつくだろうが、どこからでもアクセスできる変数だ。

つまり、関数の外だろうが中だろうが値を取り出したり、内容を書き換えたりできる。

しかし、関数内でグローバル変数を使う場合にはひと工夫必要だ。

下の例を見て欲しい、

関数内でグローバル変数にアクセスしたい場合は、"global"をつけて宣言しなおしてやる。

要は「自分はglobalから来ましたよ」と言う意味で関数内で自由に動けるためのパスポートみたいなもんだ。

それもなしに_sampleないで、ただ"$num" だけなら「 $num? 誰それ知らんわ」ってなっちゃう。

 

グローバル変数の利用について


グローバル変数はどこからでも利用できるから、扱い易いように見えるが。

プログラムのコードが何百行になった時に、グローバル変数を色んな所で使ってしまうと。

後から、そのコードを見直すときに、絶対後悔するだろう。

そのために、多くのプログラマーはグローバル変数を宣言するとき、決まって大文字を使う習わしがある。

大体こんな感じだ、

 

大体、プログラム全体で扱う設定変数について使われる印象が強いな。

プログラムを書いていくと、この変数はどこまで使えるかということがわかっていた方が、他の人が見ても後で自分が見ても幸せになる。

要は何が言いたいかというと、あまりグローバル変数を使わないことだ。

 

-PHP, サーバサイド
-

© 2023 Shiro's secret base