我想在一个对象(处理程序)中创建一个数组,该数组包含PHP中的一系列对象(主题)。数组是处理程序的属性,我有一个创建新主题的方法。
class MyHandler (
$TheList = array();
$TempSubject = object; // class subject
public function AddNewSubject($information) {
$TempSubject = new subject($information);
$This->TheList [] = $TempSubject;
}
)
如果我按上述方式创建新主题,那么信息持久对象是否会在MyHandler
内持续存在,还是会在AddNewSubject
结束后丢失?我是PHP的新手,所以请评论任何错误。
答案 0 :(得分:6)
它会持续存在,但你有一个错字$This
..应该是$this
答案 1 :(得分:1)
回答你的问题是对象将在课堂上持续存在
class MyHandler (
public $TheList = array();
public function AddNewSubject($information) {
$this->TheList[] = new subject($information);
}
)
答案 2 :(得分:0)
您应该使用array_push方法,请在此处查看: http://php.net/manual/en/function.array-push.php
答案 3 :(得分:0)
$TempSubject
只是一个临时变量。但是,如果你要定义你的函数:
public function AddNewSubject($information) {
$this->TempSubject = new subject($information);
$this->TheList [] = $this->TempSubject;
}
然后每次都会更新对象的属性($this->TempSubject
),但该对象的副本将存储在$this->TheList
中。
最后,如果你要定义你的函数:
public function AddNewSubject($information) {
$this->TempSubject = new subject($information);
$this->TheList [] =& $this->TempSubject;
}
你会发现$this->TheList
将包含一个对同一个对象的引用列表,每次调用该函数时都会被覆盖。
我希望有所帮助。