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块在页面顶部,它是如何被调用的?
答案 0 :(得分:2)
是的,脚本从上到下运行。我不明白为什么你认为if-else块有什么不同?运行那些if子句以在执行和输出页面的其余部分之前设置$sel_subj
和$sel_page
变量。
答案 1 :(得分:2)
每次每页从上到下运行。在初始视图中,假设网址没有参数,则不会设置$_GET['subj']
或$_GET['page']
。
如果单击指向同一页面的链接,则将重新处理整个PHP文件。如果该链接在URL中包含subj
或page
作为查询变量,则将执行相应的if
块,并相应地更改页面。
将PHP服务器视为动态创建发送到Web浏览器的某些HTML文件。一旦发送,服务器就完成了,PHP代码“消失了”。运行更多PHP代码的唯一方法是请求一个新页面,过程重新开始。
(即使是AJAX遵循相同的原则,尽管通常你会处理部分数据请求而不是整页浏览。)
答案 2 :(得分:0)
PHP脚本从上到下执行。究竟是什么问题?