2013-06-01 90 views
2

是否有這個構造函數注入變量的作用域是什麼?

$dependency1 = array(); 
$dependency2 = new SomeObject; 

$di = new OtherObject($dependency1, $dependency2); 

,這有區別嗎?

$di = new OtherObject(array(), new SomeObject); 

在第一個示例中,$依賴變量暴露於全局範圍,這是顯而易見的。但是第二個例子呢?它是否創建封裝?

傳遞給公共方法的參數也是如此嗎?

我會測試它,但我不知道如何去了解它...

回答

1

在第二種情況下,你將不會看到這兩個參數,除非你知道,OtherObject的構造將它們分配給一些公共財產。

0

第一種方法會在全局空間中留下兩個對參數的引用。就是這樣。如果需要使用相同的共享依賴項注入其他組件,請使用第一種方法。