• ベストアンサー

グローバル変数

グローバル変数はどういう時に使うのか教えてください!

  • PHP
  • 回答数3
  • ありがとう数2

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

  • ベストアンサー
  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.3

> グローバルに指定したものはどのファンクションからでも呼び出せるので > 複数のプログラムで使用する、共通のプログラムをincludeやrequireして > ファンクションが飛び飛びになる時などに役立っています。 う~ん。。。だからまずいんです(笑) と言うか、自分だけでそのプログラムを完成させるのであれば、【まだまし】ですが(私なら使いません。)、人の書いたグローバル変数が羅列されたコードをとても読む気にはなりませんし、コードの可読性が著しく落ちます。 > 全てグローバル変数で作成する人はいないと思いますし、 > 動的に変更され、どこからでも呼び出したいものである場合はとても便利です。 そうですね。便利です。 しかしその便利さに対する危険性が大きすぎます。 その他の言語でもいいのである程度大きなシステム作ったことあります? # かく言う私もphpでは大きなものは作ったことがありません(^^; そんなとき、グローバル変数を使うと酷い目にあいますし、チームで作るときも絶対に嫌われます。 > 何事も、適材適所ですね。 私はグローバル変数の適所というのは「簡単なコードのテストの時」だけと考えています。 global $hoge function fuga() {  $a=$hoge; } function fugo() {  $b=$hoge; } の様なときでも、テストが終わり、本番にはいるときは必ず、 function fuga($hoge) { } function fugo($hoge) { } と関数に引数で渡します。

その他の回答 (2)

  • duckling
  • ベストアンサー率47% (88/185)
回答No.2

出来るだけ使うべきではない、 ということはないと思います。 グローバルに指定したものはどのファンクションからでも呼び出せるので 複数のプログラムで使用する、共通のプログラムをincludeやrequireして ファンクションが飛び飛びになる時などに役立っています。 全てグローバル変数で作成する人はいないと思いますし、 動的に変更され、どこからでも呼び出したいものである場合はとても便利です。 何事も、適材適所ですね。

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.1

> グローバル変数はどういう時に使うのか教えてください! ど~~~~~~~~しても、使わざるを得ない時に使います(笑) # 果たしてそんな状況はあるのだろうか? # 私場合はないですね。 又は、「どうせこのコードはここでしか使わないや。楽しちゃえ~」って言うとき… と言うより、出来るだけ使うべきではありません。 ではなぜ使わない方がいいか。。 同じ変数をあちこちでグローバルで記述すると、変数の管理が大変になります。 特に関数なんかに組み込んじゃうと、絶対に(?)また同じ変数名を宣言してしまいます # 変数名をつける法則って自然とあるでしょ? # 例えば連番の数字なんて、$id とか。。。 それで、「何でこのコードの動きがおかしいんだ!?」 って後で悩むからです。

関連するQ&A

  • 変数

    ポインタ変数なんですが、 int *p;と宣言した時 自分自身のアドレスを持ってますか?(プログラムが終わるまで?) ポインタ変数は、他の変数アドレスを格納しますよね。 また数値の値も格納しますよね。 これは、ポインタ変数宣言 時の自分のアドレスに、 他の変数のアドレス、数値の値、 と二つを格納しているのですか? ポインタ自身のアドレス出力は(int *pの時) printf("%p",&p); 他の変数のアドレス出力は(p=&の時) printf("%p",p); であってますか? 普通の変数は、自身のアドレス、数値の値、だけ、 ポインタ変数はさらに、他の変数の値を格納していますか? 教えてください。

  • 変数はグローバルでないと残らない?

    https://okwave.jp/qa/q9324346.html のつづき 変数はグローバルでないと残らないと聞いたのですが、 どこにあってもイベントリスナー内などページ読み込み時には実行されないところでなければ、閉じたりしなければ残るのでしょうか? どこにあると残ってどこにあるとその関数がおわった時に変数も消えるのかがわかりません。

  • 変数に変数を使いたいのですが、できますでしょうか?

    変数に変数を使いたいのですが できますでしょうか? 【↓やりたい事のイメージ】 ------------------------------ for i in 1..3 hensuu【ここにi】 = i end ------------------------------ 結果として 変数「hensuu1」に1が代入され 変数「hensuu2」に2が代入され 変数「hensuu3」に3が代入されるようにしたいのです。 宜しくお願い致します。

    • ベストアンサー
    • Ruby
  • 変数とは?

    変数の正体 アドレスに対して、人間がわかりやすいように名前を付けておく──それが変数の正体です。 変数とは「値の格納先(アドレス)に対して付けられた名札」といえます。 つまり yahooサイトで例えるとyahoo.co.jpが変数であり変数名であるということですかね?

  • 必要な変数について

    プログラムをこれから習うのですが、書くときに先ず必要な変数は何かということを考える必要があるのでしょうか?それとも必要になっと時にその都度書いていけばいいのでしょうか? また変数とはどのようなものであるかがいまいち分かっていません。 よくネットや本などでは箱のようなものとよく書かれていますが、それだけでは イメージがわかず、どのようなものを変数として必要なものとして考えればいいかよく分かりません。 教えていただけますでしょうか?

  • Javaの環境変数なのですが「システム変数の編集」の[変数値]

    Javaの環境変数なのですが「システム変数の編集」の[変数値] のテキストボックスに何度も.;C¥Program Files¥Java¥jdk1.6.0_ 2.2¥bin;と入力して設定しようとしているのですがうまくいきません。 最後のコンパイラの時うまくいかないのです。どなたか助けてください。

  • ローカル変数の使いかた

    非常に初歩的なのですがrubyにおいてインスタンス変数、ローカル変数とクラス変数の使い分けがわかりません。 あるクラス内においてクラスから作られたすべてのオブジェクトに適用したい値はクラス変数に、インスタンスごとに違うのならインスタンス変数にするのはわかるのですが、クラス内でローカル変数はなぜ使うのでしょうか?受け取った引数もオブジェクトならインスタンス変数に、クラスならクラス変数に原理的には属すと思うのです。 あるオブジェクトがあるメゾッドを実行した時にそのオブジェクト全体に適用したくない変数をローカル変数にすると考えました。 その場合、なぜ class A a= 1 end のようにメゾッドに属さないクラス内にあるローカル変数があるのでしょうか?

  • 変数の中に変数を

    お世話になっております。 質問タイトルにありますように、変数の記述のあるテキストを変数の中にいれたいのですが、元の変数が有効にならないため質問させていただきます。(グーグルで検索しているのですが、どれも解決に至らないので・・) データベースに変数($text)を含んだテキストを保存した後、以下のような構成のファイルをブラウザでみると、変数($text)は展開されずに、ブラウザ上に$textと表示されてしまいます。 <?php $text="テスト"; //DB問合わせ //上記、変数textを含んだテキストをDBから呼び出す echo $data;//この変数の中に、上記変数($text)が入っている。 ?> 以上のような場合、変数($text)を展開させるには、どのようにしたら宜しいのでしょうか? お忙しい中恐縮ですがアドバイスのほど宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • 変数

    Dim トータル As Integer トータル = 200 Dim 変数1(トータル) As Integer Dim 変数2(トータル) As Integer Dim 変数3(トータル) As Integer Dim 変数4(トータル) As Integer ※変数1~4に同じ数の変数(クローン??)を用意したいのですがエラーがでます。 このような使い方は出来ないのでしょうか? なお、VB上ではローマ字で使っています。 変数は6個ぐらいあり 毎回変えるのは面倒なので・・・ (スパイラルモデル方式??といっても使うのは私自信ですが・・・)

  • グローバル変数

    VBAにおいて「グローバル変数」と言うのは パブリックで宣言された変数を言うのでしょうか?

専門家に質問してみよう