2010-11-21 11 views
1

グローバルスコープ内の変数を参照する関数内で$ GLOBALS ['var']を使うことができます。 関数内に何らかの宣言を使用することができますか?毎回$ GLOBAL ['var']を使用せずに$ varを使用できるようになりますか?すべての変数をグローバルスコープに変換する

ジョエル

+4

変数のスコープは、目的を持っています。なぜあなたはそれを元に戻したいのですか? – Gumbo

+1

これは実行可能ですが、おそらく非常に悪い考えです。 @ Gumboの質問 –

+0

を参照してくださいこれは悪い考えであることに私は完全に同意します。しかし、これは、練習のためだけに、必要なときにそのようなものを作成する方法をよりよく理解するためです。 – Joel

答えて

1

ことはお勧めできませんが、しかし、あなたがしたい場合は、ここで何ができるかです:

はあなたのみ値を設定し(とは VARSから値を取得したい場合)、ちょうどextractを使用します。

extract($GLOBALS); 

これは、抽出し、現在のスコープ内のすべての変数を作成します。

+0

"S"が見つからない場合は$ GLOBALですが、うまくいきます!ありがとう:) – Joel

1

静的クラスの使用はどうですか?あなたが関数の内部タイプ$varの代わり$GLOBALS['var']を使用することができますので、このような

class example 
{ 
    public static $global; 
    public static function set($arr) 
    { 
    foreach ($arr as $key=>$val) 
    { 
     self::$global[$key] = $val; 
    } 
    } 
} 

function example_function() 
{ 
    var_dump(example::$global); 
} 

example::set(array('a'=>1, 'b'=>2)); 
example_function(); 
1

として
あなたは、globalキーワードを使用することができます。

function myFunc() { 
    global $var; 
    $var = 3; 
} 
$var = 1; 
myFunc(); 
echo $var; 

出力:3

関連する問題