我有硕士班,有功能打印网站的每个部分。我有一个打印主容器的函数,它是一个包含所有内容的div。(html/body/#主容器/(所有网站元素))。在这个函数中,我有一个抽象的受保护函数,它在网页(子类)上用来生成进入主容器的内容。这是主类中代码的一部分:
...
# print content
abstract protected function print_content();
# print master-container
public function print_master_container(){
$output = '
<div id="master-container">
'.$this->print_content().'
</div>
';
echo $output;
}
...
这是子类中的代码:
class Starting_page extends Core {
public function print_content(){
$this->print_navbar();
echo 'test';
}
}
...
现在的问题是它打印所有内容(字符串“test”和函数$this打印的内容)-
如果需要显示更多代码,请说出来。
正如评论中的好人所说,问题在于特定的方法使用了echo
而不是return
。但是,当使用return
时,将根本没有输出。然后@Rasclatt想出了解决这个问题的办法,也就是说;
class Starting_page extends Core {
public function print_content(){
# output buffering start
ob_start();
# print navbar
$this->print_navbar();
# declare output buffering content
$output = ob_get_contents();
# add more output data
$output .= 'other content';
# end output buffering and return it
ob_end_clean();
return $output;
}
}
值得注意的是$this-