2012-06-20 65 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存在,但應該從對象本身進行訪問。