用什么取代echo?

用echo 将html放在php里面,感觉太丑了,有无更好的办法,达到同样的效果?

<html>
<body>
<?php
    if(isset($_POST['login'])){
        $userName = $_POST["userName"];
        $PS = $_POST["PS"];
        echo  "您输入的名字是:".$userName."\n";
        echo  "您的密码是:".$PS."\n";
    }
    else{
        echo '
        <form action=""   method=post>
        user:  <input type=text name=userName size=12/>
        key:   <input type=text name=PS size=12/>
        <input type=submit value=登录 name="login">
        </form> ';
    }
?>
</body>
</html>
阅读 6.3k
11 个回答

尽可能的前后端分离吧,比如vue的列表渲染,php用来处理数据返回前台json渲染到页面上,单个数据也可以用数据绑定机制来实现,php只需要在后段处理数据就好

题主觉得echo太丑,想换个echo姿势?
写个全局方法可以吗?

function e($val)
{
    echo $val;
}

e('123');

为什么要把html标签放在php中用echo打印出来?这样可读性很差。
应该这样(php与html混写):

<html>
<body>
<?php if(isset($_POST['login'])):  ?>
        您输入的名字是:<? echo $_POST["userName"] ?>
        您的密码是:<? echo $_POST["PS"] ?>
<?php else: ?>
        <form action=""   method=post>
        user:  <input type=text name=userName size=12/>
        key:   <input type=text name=PS size=12/>
        <input type=submit value=登录 name="login">
        </form>
<?php endif ?>
</body>
</html>

当然,如果你愿意,还可以这样:

您输入的名字是:<?=$_POST["userName"];  ?>

P.S.博客上有一篇很简陋的文章,希望有所帮助:http://twic.me/work/note/html...

用原生的可以提高应用的性能,后面如果使用框架都有模板引擎,像twig,blade等

{{ username }}

有一种模式 后台传json流过来,用前端语言实现遍历,进行模板渲染

这路数就很多啦~~楼上大神回答的都对,基本思路无外乎就是要不就是前端封装,要不就是后端封装,页面代码跟数据代码要分离,纯粹而简单。

使用print或者自定义函数达到输出的效果,或者使用Laravel等框架的模板引擎,那这样的话输出语句就为

{{ $var }}
$name = 'nine';
$template =<<<TEMPLATE
    hello$name
    <span>$name</span>
TEMPLATE;
echo $template;

如果非要混用,可以尝试这种方式。

可以使用语言引擎,比如smart

最好不要这样写。后端php尽可能的作为数据接口吧,把json数据传回前端。
前端可以用node层再进行进一步的数据处理,这样还可以减轻模板渲染时的性能消耗。

  1. 要么就直接用PHP来写接口,返回JSON数据,然后页面交给前端处理

  2. 要么就使用PHP得模板引擎,如Smarty,twig等,用来处理视图与数据之间的关系

推荐问题