• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP 関数内の変数のスコープについて)

PHP関数内の変数のスコープについて

このQ&Aのポイント
  • 関数内で作成したローカル変数を他の関数で使用する場合、グローバル変数にする方法を試しましたが反映されませんでした。
  • 関数内で作成した変数をグローバルに扱いたい場合、return文を使用して戻す方法も考えましたが、処理の都合上難しいです。
  • ローカル変数を他の関数で使用するためには、関数の引数として渡すことが最も簡単な方法です。関数Aの中で関数Bを呼び出す際に、関数Bに引数として変数aを渡すことで、aの値を関数B内で使用することができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

A()の中でもglobal設定してみては? <?PHP function A(){ global $a; $a = array("あ","い","う"); function B(){ global $a; $a = array("い","う"); } B(); print_r($a); } A(); ?> ただ、グローバルで変数を受け渡すなんて常識的にはしませんけどね・・・ returnしたくなければリファンレンス渡しとかはどうでしょう? <?PHP function A(){ $a = array("あ","い","う"); function B(&$a){ $a = array("い","う"); } B($a); print_r($a); } A(); ?>

n-yuuki
質問者

お礼

なんとか目的通りのプログラムができました。 大変助かりました。 ご指導有難うございました。

n-yuuki
質問者

補足

大変分かり易く有難うございます。なるほどリファンレンス渡しですね! 勉強になりました。 あと、恐れ入ります、 グローバルしない理由は、簡単にいうとなぜなのでしょうか? グローバルの性質上、開発中に混乱を起こしてしまう危険があるからでしょうか?

その他の回答 (1)

回答No.2

>グローバルしない理由は、簡単にいうとなぜなのでしょうか? >グローバルの性質上、開発中に混乱を起こしてしまう危険があるからでしょうか? モジュール強度について勉強しましょう。

n-yuuki
質問者

お礼

有難うございます、近々勉強いたします。

関連するQ&A