首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP执行到底是如何工作的,它在网页中的位置是如何影响输出的?

问PHP执行到底是如何工作的,它在网页中的位置是如何影响输出的?
EN

Stack Overflow用户
提问于 2018-01-28 23:59:52
回答 1查看 29关注 0票数 0

为了更好地理解php的执行,我一直在摆弄php。我发现,当在页面末尾使用php代码块运行相同的代码时,它会产生不同的输出。有人能给我解释一下吗。当我在做我的迷你项目的时候,这种不同让我疯狂了好几天。

代码语言:javascript
复制
<?php
    if(isset($_POST["btn1"])){  
        echo "btn1";
        die();
    }   
?>
<html>
    <body>
        <button id="btn1" name="btn1">btn1</button>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
        <script>
            $(document).ready(function(){
                $("#btn1").click(function(){
                    $.ajax({
                        type:'post',
                        url:'',
                        data:{'btn1':true},
                        datatype:'text',
                        success:function(val){
                            alert(val);
                        }
                    });
                });
            });
        </script>
    </body>
</html>

PS。这段代码按原样运行时,会产生正确的输出,即它会向"Hello“发出警报。但是当php代码写到最后时,它会提醒整个页面的html代码……

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-29 00:12:09

PHP是内联处理的,除非它被包装在函数调用、类声明或控制语句中,因为它打算包含在html中。PHP = PHP超文本预处理器。重复一遍,http://php.net/manual/en/intro-whatis.php是内联处理的。服务器不会加载文件并只运行PHP或HTML,它会从文件的开头开始处理整个文件,除非有函数调用、类声明或其他控制语句。

当您的初始页面按编写的方式加载时,'btn1‘参数没有被发送,因此跳过if语句,服务器继续执行页面以返回文档的其余部分中的html。

当ajax调用到达页面时,它从顶部开始,这一次if语句为true,因为设置了btn1。die()调用告诉服务器停止浏览页面的其余部分,这样您就可以从echo语句中获得"btn1“。

如果删除die语句,您将获得"btn1“文本,然后从ajax调用中获得页面的其余部分。如果你把php代码块放在页面的末尾,你会看到整个页面,然后是"btn1“文本。如果将php时钟放在html中间,ajax调用将返回中间包含"btn1“页面,其中包含代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48488295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档