関数の中でのグローバル変数の書き換え (PHP)

 関数の中にある変数をグローバル宣言で読込んで参照するということはよくやるのだが、変数である以上、書き換えることももちろん可能だ。(これを知った時、思い掛けない結果だったので、ちょっとショックだったのだが、これって当たり前のことなのか)

 ということは、ある関数を走らせて、グローバル変数を書き換えた場合は、リターンの必要もなく変数の内容が変わってしまうということだ。

 使いようによっては便利だが、関数の内容を忘れてしまうと、いつのまにか意図せずに変数の値が変わってしまっている、ということも起こる。

 何か関数にその機能についての明示的な名前をつけておくか、呼び出した箇所でコメントを残しておいた方が無難だろう。

 あるいは、関数の中でのグローバル変数の使用は、参照のみにとどめておくか。
 実際、殆どの場合はそういう使用方法なのだが、ルールとして厳格に決めてない限り、関数内でのグローバル変数書き換えはありうることだ。

 でもやはり、書き換えない、と決めた方がいいのかもしれない。

Tail-Lagoon @ 08:00

コメントおよびトラックバック受付中です。
TB : http://weblogs.tail-lagoon.com/WebPC/2008/06/30/38/trackback/

コメントをどうぞ

この投稿へのコメントは RSS 2.0 フィードで購読できます。