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

はい、スクリプトは上から下に実行されます。if-elseブロックが違うと思う理由がわかりませんか?これらのif句は、ページの残りの部分が実行されて出力される前に、変数を設定するために$sel_subj実行$sel_pageされます。

于 2012-06-10T03:19:02.830 に答える
2

ページビューごとに上から下に1回実行されます。初期ビューでは、URLにパラメーターがないと仮定すると、どちらも設定されない$_GET['subj']か、$_GET['page']設定されます。

同じページを指すリンクをクリックすると、PHPファイル全体が再処理されます。そのリンクがクエリ変数としてURLに含まれている場合、subjまたはURLに含まれている場合、対応するブロックが実行され、それに応じてページが変更されます。pageif

PHPサーバーは、Webブラウザーに送信されるHTMLファイルを動的に作成するものと考えてください。送信されると、サーバーが完成し、PHPコードは「なくなりました」。より多くのPHPコードを実行する唯一の方法は、プロセスが最初からやり直される新しいページを要求することです。

(AJAXでも同じ原則に従いますが、通常は、全ページビューではなく、部分的なデータ要求を処理します。)

于 2012-06-10T04:17:25.157 に答える
0

PHPスクリプトは、上から下に実行されます。あなたの問題は正確には何ですか?

于 2012-06-10T03:19:45.070 に答える