PHP:访问类中的现有对象

时间:2011-01-30 03:03:26

标签: php class object reference scope

我有一个名为Information的预先存在的对象,其中包含登录/用户信息。我想从另一个班级访问这个。我尝试使用谷歌搜索并寻找年龄......没有运气。为什么Information对象超出范围?

class foo() {
 function display() {
   print_r($Information);
 }
}

1 个答案:

答案 0 :(得分:1)

$由于多种原因,信息可能超出范围。

首先,也许$ Information是全局的,您只需要告诉php 全局关键字:

class foo() {
 function display() {
   global $Information
   print_r($Information);
 }
}

第二,也许$ Information是foo实例的一部分?在这种情况下,在php中,您需要“$ this”关键字。

class foo() {
 function display() {       
   print_r($this->Information);
 }
}

第三,也许在显示器的调用者中创建了$ Information,而display / foo对它一无所知。

function bar() 
{
   $Information = new $information;
   $a = new Foo();
   $a->display();
{

除非您明确地将$ Information传递给显示,或者使其成为每个Foo实例的成员变量,否则显示将无法访问它。 display可以看到(1)全局变量(2)实例变量,(3)要显示的参数,以及(4)显示的本地变量。其他任何东西都不在display()的范围内。

编辑回答您的问题 全球是的我的意思是它最初被定义为全球性的。因为不在特定的功能中,即:

  

有很多理由可以避免使用全局变量。关于这个话题已经写了很多。这是关于该主题的stackoverflow question