从函数返回html


Returning html from a function

作为一个新手,这只是一个最佳实践问题,但从这样的函数返回html更好吗:

function returnHtml($userName)
{   
$htmlMsg = "
<html>
    <head>
        <title>Return the html</title>
    </head>
    <body>
        <p>You've received an email from: ".$userName.".</p>
    </body>
</html>
";
return $htmlMsg;
}

或者像这样:

function returnHtml($userName)
{
?>
<html>
    <head>
        <title>Return the html</title>
    </head>
    <body>
        <p>You've received an email from: <?php $userName ?>.</p>
    </body>
</html>
<?php
}

第二个比第一个容易得多,因为您不必将html转换为字符串,但我想知道缺少返回语句是否会导致任何不可预见的问题。谢谢你的建议!

您发布的两个函数的作用不同。第一个返回一个html字符串,第二个打印字符串。

从本质上讲,这取决于你想用这个函数完成什么。如果你想打印一些HTML,第二个函数更好,如果你想在字符串中有一些HTML,第一个更好。

如果您使用AJAX、get或POST方法来获取HTML代码,那么我会使用第一个方法,因为从php文件中返回的任何内容都会放入您可以使用的变量中。

例如:

$.ajax({
    type: "POST",
    url: "document.php",
    data: {data: "some information to send"},
    success: function(echoed_data) {
        $('#element').html(echoed_data);
    }
});

document.php

function returnHtml($userName) {   
    $htmlMsg = "
        <html>
            <head>
                <title>Return the html</title>
            </head>
            <body>
                <p>You've received an email from: ".$userName.".</p>
            </body>
        </html>
    ";
    echo $htmlMsg;
}

这将使用AJAX从"document.php"发送和接收数据,然后将从.php文件返回的HTML代码输入到某个元素中。