div 函数在另一个 div 函数中

div function inside another div function

是否可以在 php 中使第二个 div 出现在第一个 div 中,而不是让两个 div 分开? 我想制作一个 php dom 系统,但我遇到了这个问题。

这是我在 returns 页面时得到的 HTML :

<div style="width:
                50px;
            height:
                30px;
            background-color:
                yellow;

                color:white
            ">
                blablabla
</div>
<div style="width:
                200px;
            height:
                50px;
            background-color:
                blue;

                color:white
            ">

</div>

这是 PHP 代码:

<? php

function genDiv($width, $height, $bgColor, $add, $content) {
    echo '
        <div style=\'width:
            '.$width.';
        height:
            '.$height.';
        background-color:
            '.$bgColor.';

            '.$add.'
        \'>
            '.$content.'
        </div>
    ';
}

$block = genDiv(
    '50px',
    '30px',
    'yellow',
    'color:white',
    'blablabla'
);
genDiv(
    '200px', 
    '50px',
    'blue',
    'color:white',
    $block
);

?>

您需要重写函数,使其 returns HTML 而不是直接输出。

然后你可以回显第二次调用该函数的结果。

你的函数里没有return,你echo st。直接。

function genDiv($width, $height, $bgColor, $add, $content) {
    return '
        <div style=\'width:
            '.$width.';
        height:
            '.$height.';
        background-color:
            '.$bgColor.';

            '.$add.'
        \'>
            '.$content.'
        </div>
    ';
}

$block = genDiv(
    '50px',
    '30px',
    'yellow',
    'color:white',
    'blablabla'
);
echo genDiv(
    '200px', 
    '50px',
    'blue',
    'color:white',
    $block
);

您也可以使用双引号代替单引号。

我使用这段代码获得了所需的输出。

<?php 
function genDiv($width,$height,$bgcolor,$add,$content)
{
    return "<div style='width $width; height:$height;
    background-color: $bgcolor; $add'>
    $content
    </div>";
}
$block = genDiv('50px','30px','orange','color:white','blablabla');
$content = genDiv('200px','50px','blue','color:white;padding-top:20px', $block);
echo $content; //required output. second div in first div
?>

为了清晰可见,我更改了黄色并添加了填充。