2011-07-24 22 views
0

どのようにクラス内にある関数の内部で来る、私はこの文を実行することはできません。PHPのグローバル変数

global $connected = true; 

しかし、私はこれを行うことができます。

global $connected; 
$connected = true; 
+0

とは何ですか? – rabudde

+0

グローバル変数の名前をキーとし、その変数の内容が配列要素の値である$ GLOBALS連想配列をお勧めします。 – Nickool

+2

問題がないことを明確にするために、なぜ私は1つのステートメントでそれを行うことができないのだろうかと思っています。 – David

答えて

1

範囲に$connectedを持ち込んで値を代入すると、が別ののものになります。

本当にあまり意味をなさない1つのステートメントで可能である理由はありません。


次のコードん:

function foo() { 
    global $x = 5; 
} 
  • はスコープに "グローバル表現" $x = 5を持参?
  • "グローバル表現" 5を有効範囲に設定しますか?
  • 5をグローバル$xに割り当てますか?
  • 5をグローバル$xに割り当ててから、$xを有効範囲に追加しますか?

もちろん、後者を意味することを意図しており、最初の2つは意味がありません。しかし、それは提案された声明からは明らかではない。それは構文が貧弱です。

0

内部ため、最初にグローバル変数を宣言する必要があります。それはあなたが機能の始めにやらなければならないことです。そうすれば、通過しなかった特定の変数をアクティブにすることができます。

+0

真実ですが、これは単にOPが知っているように事実を述べているだけです。これらの事実はどういうものなのか説明しようとしません。 –

+0

簡単に言えば、「理由」は答えではありません。 –