[英]Create an instance of an object inside a method
我讀了一本關於OOP PHP的書,無法理解作者的意思:
class Registry {
/**
* Array of objects
*/
private $objects;
public function createAndStoreObject($object, $key) {
require_once($object.'.class.php');
$this->objects[$key] = new $object($this);
}
}
1)$ this-> objects [$ key] - 我們保存私有類數組值。 2)new $ object($ this) - 我不明白我們在哪里取對象$ object(如果這個數組)和$ this意思是什么意思?
$class = 'Foo';
$foo = new $class;
是相同的
$foo = new Foo;
這解釋了new $object
作用。 雖然它實例化了$object
的新實例,但它將$this
傳遞給對象的構造函數。 即它將對Registry
對象的引用傳遞給正在構造的對象。
$ this指的是范圍內的當前對象,所以在你的情況下是Registry類,所以你可以通過使用$ this->對象來調用你類范圍內的$ object變量
它是Registry Design Pattern的示例,它創建與Factory Design Pattern類似的對象。 在此模式中,類只是創建您想要使用的對象,而不必知道它創建的對象類型。 在您的示例中, createAndStoreObject
函數使用變量類名創建類的新實例。
例如,如果$object = 'Foo'
,那么就是:
require_once('Foo'.'.class.php');
$this->objects[$key] = new Foo($this);
傳遞給構造函數的$this
的含義是創建的所有對象都可以訪問Registry對象
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.