提问者:小点点

当将字符串打印到html页面时,PHP将它们打印在错误的地方


我有硕士班,有功能打印网站的每个部分。我有一个打印主容器的函数,它是一个包含所有内容的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打印的内容)-

如果需要显示更多代码,请说出来。


共1个答案

匿名用户

正如评论中的好人所说,问题在于特定的方法使用了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-

相关问题