国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Bagaimana untuk menulis fungsi untuk mencipta dan elemen HTML AppendChild dalam PHP?
P粉814160988
P粉814160988 2024-03-30 21:45:27
0
1
643

Saya mahu menulis fungsi yang mencipta elemen HTML dan menambahkan elemen anak antara satu sama lain, dan bukannya menggemakan sebahagian kod HTML atau menggunakan echo <<<HEREDOC.

createLoginBar 函數(shù)將創(chuàng)建一個(gè) div,我會(huì)將其附加到其他 HTML 元素到我的 createLogoutBanner dalam fungsi.

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();
}
Baris

createLogoutBanner 函數(shù)中的 $dom->appendChild($login_bar); memberikan ralat:

Ralat maut: Uncaught TypeError: DOMNode::appendChild(): Parameter #1 ($nod) mestilah jenis DOMNode, diberikan dalam rentetan.

P粉814160988
P粉814160988

membalas semua(1)
P粉504080992

Disebabkan status ralat DOMNode::appendChild() 期望傳遞一個(gè) DOMNode.
Fungsi createLoginBar anda mengembalikan rentetan dan bukannya nod.
Cuba perubahan berikut:

function createLoginBar() {
    $dom = new DOMDocument();
    $login_bar = $dom->createElement('div');
    $login_bar->setAttribute("id", "login_bar");
    $dom->appendChild($login_bar);
    return $dom; //->saveHTML();
}

Kemudian anda akan melihat ralatnya致命錯(cuò)誤:未捕獲的 DOMException:錯(cuò)誤文檔錯(cuò)誤. Ini kerana anda mesti menggunakan contoh induk yang sama bagi DOMDocument untuk mencipta nod anak. Daripada mencipta DOMDocument baharu dalam setiap fungsi, buat DOMDocument peringkat teratas dan hantarkannya kepada setiap fungsi untuk digunakan.

function createLoginBar(DOMDocument $dom):DOMNode 
{
    $login_bar = $dom->createElement('div');
    // the following line will cause invalid html if this function is called more than once
    $login_bar->setAttribute("id", "login_bar");

    return $login_bar;
}
function createBtn(DOMDocument $dom, string $value):DOMNode 
{
    $btn = $dom->createElement('button', $value);
    $btn->setAttribute("class", "widget");

    return $btn;
}

$dom = new DOMDocument();
$login_bar = createLoginBar($dom);
$login_btn = createBtn($dom, 'login');

$login_bar->appendChild($login_btn);

$dom->appendChild($login_bar);

echo $dom->saveHTML();

Hasil:

Kotak pasir

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan