2012-04-30 9 views
2

私は私のスクリプトでグローバル変数として、いくつかの共通の変数を公開する予定ですし、次の命名スキームは悪いアイデアであると考えられる場合は疑問に思って:使用アンダースコア

  1. 先頭にアンダースコアを使用し、私はPHPは番目のように、魔法のメソッドのスーパーグローバルと二重のアンダースコアのために先頭にアンダースコアを使用していることを知っている$___some_var

:のような冒頭のトリプルアンダースコアを使用して$_some_var_

  • :のように終わりますどんな葛藤もあってはならない。トラブルの原因となるものは他にありますか?これを他の理由で悪いと考えているのですか?

    ありがとうございます!

  • +5

    はい、グローバルを使用して悪いとみなされます。グローバルなことなしに同じことを実装する*適切な方法もあります。 – zerkms

    +1

    @zerkms:OPはアンダースコアを求めていますが、一般的にはグローバルの使用法ではないと思います...しかし、はい、グローバルは悪いです。 –

    +0

    グローバルはなぜそんなにびっくりするのですか?私の理解から、グローバルの使用を避ける唯一の理由は、競合の命名を避けることです。それを避ける他の理由はありますか?私がこれをやっている理由は、ページ(ユーザ情報)のどこでも使用されるデータベースの読み込みを保存することなので、一度それを読んでそれをグローバルとして保存するのが理にかなっていると思いました。 – Peter

    答えて

    1

    これは何の問題も生じません。入力を簡単にするため、単一のアンダースコアを使用したい場合があります。

    私のアプリでは、関数の内側と外側の両方の多くのスクリプトで使用できるようなグローバルを導入する必要がある場合は、$GLOBALSsuperglobalを使用しているため、アクセスされる変数がグローバルであることは明らかです。

    これは、機能にglobal $somevar;を使用する必要もなくなります。しかし、それはあなたがそれらをどのくらいの頻度で使用するかに依存して、より多くのタイプ入力です。

    可能な値はconstantsである可能性がありますか、実際には可変ですか?

    +0

    PHPグローバルがローカルスコープに含まれていないことを完全に忘れてしまったので、後でデバッグ時間を節約できました。 – Peter

    +0

    :)優秀、私はそれを数回犠牲にしたので、私はそれを言いました。忘れるのはとても簡単です! – drew010

    0

    グローバルな状態が必要だと思ったら、静的なクラスを作成するのはどうですか?

    class myVars { 
    
        static property $var1; 
    
    } 
    
    0

    彼らは定数として扱われることになっている場合は、使用します。 は(、値を「CONSTANT_NAME」)を定義する

    彼らは真のグローバル変数である場合、1つの規則は次のとおりです。 $ mVariableName

    関連する問題