2011-07-24 175 views
0

为什么一个函数,它是一个类里面里面,我不能做这样的说法:PHP类函数内部全局变量

global $connected = true; 

但我可以这样做:

global $connected; 
$connected = true; 
+0

有什么问题? – rabudde

+0

我建议使用$ GLOBALS关联数组,其中全局变量的名称是键,该变量的内容是数组元素的值。 – Nickool

+2

澄清没有问题,我只是想知道为什么我不能在一个声明中做到这一点。 – David

回答

1

$connected纳入范围,并赋值给它,两个分开东西。

在一个声明中没有理由使它们成为可能,这并没有多大意义。


请问下面的代码:

function foo() { 
    global $x = 5; 
} 
  • 带来的 “全球表现” $x = 5为范围?
  • 将“全局表达式”5纳入范围吗?
  • 5指定给全球$x
  • 5指定给全球$x,然后将$x纳入范围?

我当然知道你打算这是后者,前两者没有意义。但是,这个提议的陈述并不清楚。这将是糟糕的语法。

0

因为里面你首先必须宣布一个全局变量的函数。这是你在函数开始时必须做的事情。这样你可以激活一个没有通过的特定变量。

+0

虽然这是事实,但这只是说明了OP已经知道的事实。它并不试图解释为什么这些事实是如此。 –

+0

简单地说,“因为”不是答案。 –