请老师解答下这段代码的运行逻辑 第一个?>结束符在html之前就结束了啊

请老师解答下这段代码的运行逻辑 第一个?>结束符在html之前就结束了啊

<?php
//$_POST的结构


if(!$_POST):
    ?>
    <!--这里写HTML代码-->
<!DOCTYPE html>
<html>
<head>
    <title>POST</title>
    <meta charset="utf-8">
</head>
<body>
    <form method="post" action="x.php">
        <table cellspacing="0" cellpadding="0">
            <tr>
                <td align="right">名称:</td>
                <td>
                    <input type="text" id="" name="username" />
                </td>
            </tr>
            <tr>
                <td align="right">密码:</td>
                <td>
                    <input type="password" id="" name="pawd" />
                </td>
            </tr>
            <tr>
                <td align="right">邮箱:</td>
                <td>
                    <input type="email" id="" name="email"/>
                </td>
            </tr>
            <tr>
                <td colspan="2">
                    <input type="submit" id=""/>
                    <input type="reset" id="">
                </td>
            </tr>
        </table>
    </form>
</body>
</html>

<?php
else:
//这里写输出结果
    echo '名称:',$_POST['username'],'<br/>';
    echo '密码:',$_POST['pawd'],'<br/>';
    echo '邮箱:',$_POST['email'],'<br/>';
    echo ord('a');
    $str='z';
    echo ++$str;

endif;

?>

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

您好,代码中的if...else...是一个整体,所以满足if条件时显示html,不满足时显示php内容。

http://img1.sycdn.imooc.com//climg/5d78c42f098805df05850463.jpg

祝学习愉快!

  • weixin_慕田峪521140 提问者 #1
    大概明白了 可不可以这样理解:第一段php和第二段php之间的内容默认是看作if的区间 如果不在这个范围 比如我在第二个php下面写html代码 这个时候新加的html代码是会在else时执行呢 还是不管什么情况都出现
    2019-09-11 18:17:53
  • 您好,可以这样理解。但第二个php下面写html代码要分为是写在了endif;代码之前还是之后:如果是在之前,就只会在else区间输出;如果是在之后,那么什么时候都会出现。同学可以自己测试一下,查看效果加深印象。祝学习愉快!
    2019-09-11 18:22:51
  • 谢谢老师 我想问下endif这个东西 我以前学js好像没碰到过 是不是因为这里是用的:的形式 而不是花括号(两者等价?)这边因为代码分块所以才没有采用花括号 的方法是吗? 冒号+endif算es6新增的方法吗
    2019-09-11 18:37:47
好帮手慕查理 2019-09-11 16:45:49

您好,是的。代码是PHP和HTML代码混编。

下列代码也是PHP和HTML混编。

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <p style="background-color: red"><?php echo 123; ?></p>
</body>
</html>

PHP代码要写在<?php ?>中,HTML代码直接写在文件中。

(可以使用echo 输出HTML代码的)

祝学习愉快!

  • 提问者 weixin_慕田峪521140 #1
    能不能针对我这个例子来讲一讲运行的逻辑呢?我的意思他为什么能达到未提交数据前显示html 提交后就只显示了第二段php代码?1.if else这个语句我能理解 post值为空时显示html 不为空时显示第二段php 这个没问题 2.关键是他html代码压根是独立在中间的 为什么独立存在的 还会被第二行else语句执行后覆盖掉?而且if和else也在两个php标签内 这样能算一个整体吗
    2019-09-11 17:00:21
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4930    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师