2012-06-20 66 views
0

我有一个脚本,与此类似:全局变量被认定为无效

foo.php

class Foo 
{ 
    function Foo() { 
     $Registry = array(); 
     include 'bar.php'; 
     $Registry['bar'] = new Bar(); 
    } 
} 

bar.php

class Bar 
{ 
    function Bar() { 
     global $Registry; 
     print_r(var_dump($Registry)); 
    } 
} 

但返回:

array 
    'Registry' => &null 

有没有人有任何suggestio ns为什么它不能将Registry变量识别为数组?

+1

之外以它为通过PHP给都放弃global'的'一个提醒: - ) – PeeHaa

+0

你为什么这样做?如果我看到您的系统架构的一些图,我确信我的眼睛会受到伤害:| –

+0

@EmilVikström图?建筑? ;-) – PeeHaa

回答

2

你必须创建$注册全局和类

$Registry = array(); 

class Foo 
{ 
    function Foo() { 
    global $Registry; 
    include 'bar.php'; 
    $Registry['bar'] = new Bar(); 
    } 
} 

bar.php

class Bar 
{ 
    function Bar() { 
    global $Registry; 
    print_r(var_dump($Registry)); 
    } 
} 
0

也许在两个函数中尝试全局。

0

因为$Registry不存在,所以Foo->Registry存在,但应该从对象本身进行访问。