我正在尝试创建一个我将使用链接的对象数组,我遇到了一个问题,我希望我能得到帮助。这是我的代码:
$sql = new sql();
$sqlList[] = $sql->setTable('TableTest1');
$sqlList[] = $sql->setTable('TableTest2');
$sqlList[] = $sql->setTable('TableTest3');
$testDB->delete($sqlList);
sql 类包含一个名为 table 的私有变量,它具有如下的 setter 和 getter 方法:
public function setTable($setTable)
{
$this->table = $setTable;
return $this;
}
public function getTable()
{
return $this->table;
}
为了测试这一点,我在 $testDB 对象中有一个简单的删除方法,如下所示:
public function delete($sql ,$setClear = true)
{
echo "<pre>";
print_r($sql);
echo "</pre>";
}
我希望返回一个数组,其中的元素包含三个不同的 TableTest 值,但所有三个都只包含“TableTest3”的最后一个条目,如下所示:
Array
(
[0] => sql Object
(
[table:sql:private] => TableTest3
)
[1] => sql Object
(
[table:sql:private] => TableTest3
)
[2] => sql Object
(
[table:sql:private] => TableTest3
)
)
我正在使用 PHP 5.4.7。我究竟做错了什么?一个比我有更多经验的程序员建议这种方法能够进行一系列不同的设置来逐步完成,我正在尝试这个来测试我的代码。在我看来,它是在数组的每个条目中引用对象 $sql 而不是我想要的实际对象的副本。