我正在做这个关于 OOP 的 PHP 教程,我正在尝试将来自基本培训的程序代码合并到其中,看看我是否真的学到了超出基础知识的任何东西,我被卡住了,很长一段时间。
所以,我在名为 Blog 的类中有这两个函数:
public function navigation($selected_subject, $selected_page) {
$output = "<ul class=\"subjects\" id=\"accordion\">";
$subject_set = $this->get_all_subjects($public);
while ($subject = mysqli_fetch_array($subject_set)) {
$output .= "<li";
if ($subject["id"] == $selected_subject['id']) { $output .= " class=\"blogselected\""; }
$output .= ">{$subject["menu_name"]}</li>";
$page_set = $this->get_pages_for_subject($subject["id"], $public);
$output .= "<ul class=\"pages\">";
while ($page = mysqli_fetch_array($page_set)) {
$output .= "<li";
if ($page['id'] == $selected_page['id'] ) { $output .= " class=\"blogselected\""; }
$output .= "><a href=\"../public/blog_index.php?page=" . urlencode($page["id"]) .
"\">{$page["menu_name"]}</a></li>";
}
$output .= "</ul>";
}
$output .= "</ul>";
return $output;
}
public function blog_page($selected_page){
if ($selected_page) {
echo "<h2>" . $selected_page['menu_name'] . "</h2>";
echo "<div class=\"page-content\">";
echo $selected_page['content'];
echo "</div>";
} else {
echo "<h2>Welcome to Widget Corp</h2>";
}
}
以及索引页面上的这段代码:
<?php
$blog = new Blog;
global $selected_page;
global $selected_subject;
?>
<div class="blog">
<div class="blogpost">
<?php echo $blog->blog_page($selected_page); ?>
</div>
<div class="blognav">
<?php echo $blog->navigation($selected_subject, $selected_page); ?>
</div>
</div>
该代码部分有效。带有主题和子页面的导航显示正常,当点击链接时,id "?page=1" 被传递给 url,但问题是代码没有向活动链接添加类 "blogselected" ,并且点击链接时也不显示内容。唯一显示在内容区域的是第二个函数中 else 条件中的 h2“Welcome to Widget Corp”,所以我相信变量 $selected_subject 和 $selected_page 可能会导致问题,但我就是想不通它是我自己的。我花了无数个小时试图解决这个问题,我正处于完全放弃的边缘。我到底在这里想念什么?