- ベストアンサー
グローバル変数について
関数の中で定義されたローカル変数(例えばfunction func(){$a=○○;}の $a)をグローバル変数にするにはどのようにしたらよいのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
globalなんて使うもんじゃないよ 百害あって一理無しです 他のfunction内の変数と同じものを使いたい場合はclass作るべし。 <?php //php4でも5でも動く例です。PHP5専用のもっと綺麗(華麗?)な書き方もあります。 class Foo { var $a; function funcA(){$this->a="○○";} function funcB(){print $this->a;} } // $this-> は特別な存在でして、自分自身(この場合 Fooクラスの中の という意味になります) $obj = new Foo(); $obj->funcA(); $obj->funcB(); ?> で 画面には ○○ と表示されることから、 funcAで設定した$aがfuncBでも同じもの という理解が出来るかと思います おせっかいかも知れませんが、globalはこういったclassの考えがなく、単なる関数をだらだらと書き続けてゆくタイプのソースの書き方をすると 欲しくなってしまう機能ではありますが、絶対に使わないことをおススメします 個人で趣味で全部のソースを全て自分が把握しているのであれば、ご勝手にどうぞ という感じですが、本格的にシステムを組むことになると $aがglobalだと知らずに新たにglobal宣言してしまった場合を考えてください かなり恐ろしい結果になります $aの内容を上書きしまくって何がなんだかわけ分からん状態になります
その他の回答 (2)
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
関数外部で使うものなのならば、むしろ引数に参照渡しの変数を設定するか、 戻り値を利用するべきです。
お礼
回答ありがとうございます。
- shimix
- ベストアンサー率54% (865/1590)
お礼
回答ありがとうございます。
お礼
詳細な回答ありがとうございます。大変勉強になりました。