PHP脚本是从上到下阅读的吗?

时间:2012-06-10 03:13:43

标签: php

PHP脚本是从上到下读取的吗?喜欢HTML吗?因为在这段代码中

<?php require_once("./includes/connection.php")?>
<?php require_once("./includes/functions.inc.php"); ?>
<?php 

    if(isset($_GET['subj']))
    {
        $sel_subj = get_subject_by_id($_GET['subj']);
        $sel_page = NULL;

    }else if(isset($_GET['page']))
    {
        $sel_subj = NULL;
        $sel_page = get_page_by_id($_GET['page']);
    }else
    {
        $sel_subj = NULL;
        $sel_page = NULL;
    }


?>
<?php include("includes/header.inc.php"); ?>
<table id="structure">
    <tr>
        <td id="navigation">
            <ul class = "subjects">
                <?php

                    $subject_set = get_all_subjects();

                    while($subject = mysql_fetch_array($subject_set))
                    {
                        echo "<li";
                        if($subject['id'] == $sel_subj['id']) {echo " class =\"selected\"";}
                        echo "><a href=\"content.php?subj=" . urlencode($subject["id"]) . 
                        "\">{$subject["menu_name"]}</a></li>";

                        echo "<ul class = 'pages'>";

                        $page_set = get_pages_for_subject($subject['id']);

                        while($page = mysql_fetch_array($page_set))
                        {
                            echo "<li"; 
                            if($page['id'] == $sel_page['id']){echo " class = \"selected\"";}
                            echo"><a href=\"content.php?page=" . urlencode($page["id"]) .
                            "\">{$page["menu_name"]}</a></li>";
                        }
                        echo "</ul>";
                    }
                ?>
                </ul>
        </td>
        <td id="page">
                <?php if(isset($sel_subj)){?>
                    <h2><?php echo "{$sel_subj['menu_name']}";?></h2>
                <?php } ?>  
                <?php if(isset($sel_page)){?>
                    <h2><?php echo "{$sel_page['menu_name']}"?> </h2>
                <?php }?>
        </td>
    </tr>
</table>
<?php require("includes/footer.inc.php"); ?>

特别是这部分

if(isset($_GET['subj']))
        {
            $sel_subj = get_subject_by_id($_GET['subj']);
            $sel_page = NULL;

        }else if(isset($_GET['page']))
        {
            $sel_subj = NULL;
            $sel_page = get_page_by_id($_GET['page']);
        }else
        {
            $sel_subj = NULL;
            $sel_page = NULL;
        }

如果if-else块在页面顶部,它是如何被调用的?

3 个答案:

答案 0 :(得分:2)

是的,脚本从上到下运行。我不明白为什么你认为if-else块有什么不同?运行那些if子句以在执行和输出页面的其余部分之前设置$sel_subj$sel_page变量。

答案 1 :(得分:2)

每次每页从上到下运行。在初始视图中,假设网址没有参数,则不会设置$_GET['subj']$_GET['page']

如果单击指向同一页面的链接,则将重新处理整个PHP文件。如果该链接在URL中包含subjpage作为查询变量,则将执行相应的if块,并相应地更改页面。

将PHP服务器视为动态创建发送到Web浏览器的某些HTML文件。一旦发送,服务器就完成了,PHP代码“消失了”。运行更多PHP代码的唯一方法是请求一个新页面,过程重新开始。

(即使是AJAX遵循相同的原则,尽管通常你会处理部分数据请求而不是整页浏览。)

答案 2 :(得分:0)

PHP脚本从上到下执行。究竟是什么问题?