- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP 関数内の変数のスコープについて)
PHP関数内の変数のスコープについて
このQ&Aのポイント
- 関数内で作成したローカル変数を他の関数で使用する場合、グローバル変数にする方法を試しましたが反映されませんでした。
- 関数内で作成した変数をグローバルに扱いたい場合、return文を使用して戻す方法も考えましたが、処理の都合上難しいです。
- ローカル変数を他の関数で使用するためには、関数の引数として渡すことが最も簡単な方法です。関数Aの中で関数Bを呼び出す際に、関数Bに引数として変数aを渡すことで、aの値を関数B内で使用することができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
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(); ?>
その他の回答 (1)
- oktuburero
- ベストアンサー率22% (102/446)
回答No.2
>グローバルしない理由は、簡単にいうとなぜなのでしょうか? >グローバルの性質上、開発中に混乱を起こしてしまう危険があるからでしょうか? モジュール強度について勉強しましょう。
質問者
お礼
有難うございます、近々勉強いたします。
お礼
なんとか目的通りのプログラムができました。 大変助かりました。 ご指導有難うございました。
補足
大変分かり易く有難うございます。なるほどリファンレンス渡しですね! 勉強になりました。 あと、恐れ入ります、 グローバルしない理由は、簡単にいうとなぜなのでしょうか? グローバルの性質上、開発中に混乱を起こしてしまう危険があるからでしょうか?