我不想回显大块 HTML 代码或使用
echo <<<HEREDOC
,我想编写创建 HTML 元素并将子元素相互附加的函数。
createLoginBar
函数将创建一个 div,我会将其附加到其他 HTML 元素到我的 createLogoutBanner
函数中。
function createLoginBar() {
$dom = new DOMDocument();
$login_bar = $dom->createElement('div');
$login_bar->setAttribute("id", "login_bar");
$dom->appendChild($login_bar);
return $dom->saveHTML();
}
function createLogoutBanner() {
$dom = new DOMDocument();
$login_bar = createLoginBar();
$login_flex = createBlankLoginFlex();
$banner_login_form = createBannerLoginForm();
$login_message_flex = createLoginMessageFlex();
$nonmember_signup_flex = createNonSignupFlex();
$not_a_member_form = createNotAMemberForm();
$dom->appendChild($login_bar); //This line gives an error
$login_bar->appendChild($login_flex);
$login_flex->appendChild($banner_login_form);
$login_bar->appendChild($login_message_flex);
$login_bar->appendChild($nonmember_signup_flex);
$nonmember_signup_flex->appendChild($not_a_member_form);
return $dom->saveHTML();
}
$dom->appendChild($login_bar);
函数中的createLogoutBanner
行给我错误:
致命错误:未捕获的类型错误:DOMNode::appendChild():参数 #1 ($node) 必须是 DOMNode 类型,字符串在中给出。
由于错误状态
DOMNode::appendChild()
预计将通过DOMNode
.createLoginBar
函数返回一个字符串而不是节点。function createLoginBar() {
$dom = new DOMDocument();
$login_bar = $dom->createElement('div');
$login_bar->setAttribute("id", "login_bar");
$dom->appendChild($login_bar);
return $dom; //->saveHTML();
}