0

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 块位于页面顶部,如何调用它?

4

3 回答 3

2

每个页面视图从上到下运行一次。在初始视图中,假设 URL 没有参数,则既不设置$_GET['subj']也不$_GET['page']设置。

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

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

(即使 AJAX 也遵循相同的原则,尽管通常您处理的是部分数据请求而不是完整页面视图。)

于 2012-06-10T04:17:25.157 回答
2

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

于 2012-06-10T03:19:02.830 回答
0

PHP 脚本从上到下执行。你的问题到底是什么?

于 2012-06-10T03:19:45.070 回答