首先,抱歉我有缺陷的英语和愚蠢:O
我只想知道在方法链中实现这一目标的任何程序。根据DOMDocument类,如果我们执行方法链接,则相应地更改字符序列:
$dom = new DOMDocument();
$applicant = $dom->createElement('applicant');
$name = $dom->createElement('name');
$firstname = $dom->createElement('firstname', 'Joe');
$middlename = $dom->createElement('middlename', 'Johnson');
$lastname = $dom->createElement('lastname', 'Smith');
$dom->appendChild($applicant);
$applicant->appendChild($name);
$name->appendChild($firstname);
$name->appendChild($middlename);
$name->appendChild($lastname);
// OUTPUT
<applicant>
<name>
<firstname>Joe</firstname>
<middlename>Johnson</middlename>
<lastname>Smith</lastname>
</name>
</applicant>
如果我这样做
$dom->appendChild($applicant);
$applicant->appendChild($name);
$name->appendChild($firstname)
->appendChild($middlename);
$name->appendChild($lastname);
// OUTPUT
<applicant>
<name>
<firstname>
Joe
<middlename>Johnson</middlename>
</firstname>
<lastname>Smith</lastname>
</name>
</applicant>
- 那怎么样?
答案 0 :(得分:3)
appendChild
会返回附加的子项,因此您的下一个appendChild
会对该返回值执行操作。
因此,在您的第一个示例中,您始终在$name
上的$name
和$firstname
上的{{1}}两次工作{/ 1}}。
答案 1 :(得分:0)
不太清楚你的意思。
无论如何链接,因为你可能知道它是这样做的:
public function method() {
//> Code
return $this;
}
如果你需要一种返回另一种对象的方法,它就像这样:
public function method() {
//> Code
return new ObjectOtherTypeWhatEver;
}
当然你可以返回另一个像这样的对象的另一个实例(appendChild
方法是什么):
public function method($object) {
//> Code
return $object;
}