首先,对不起我有缺陷的英语和愚蠢: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);
//输出
<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);
//输出
<applicant>
<name>
<firstname>
Joe
<middlename>Johnson</middlename>
</firstname>
<lastname>Smith</lastname>
</name>
</applicant>
--怎么了?
appendChild
返回附加的子项,因此您的下一个appendChild
将对该返回值进行操作。
因此,在您的第一个示例中,您一直在处理$name
,在第二个示例中两次处理$name
,一次处理$firstname
。
请参阅:http://www.php.net/manual/en/domnode.appendchild.php
不太清楚你的意思。
无论如何,正如你可能知道的那样,链接是这样完成的:
public function method() {
//> Code
return $this;
}
如果你需要一个返回另一种对象的方法,它是这样做的:
public function method() {
//> Code
return new ObjectOtherTypeWhatEver;
}
当然,您可以像这样返回另一个对象的另一个实例(appendChild
方法是什么):
public function method($object) {
//> Code
return $object;
}