来自PHP的不需要的重复html结果

Vin*_*ina 0 php

我不知道这个代码有什么问题,这是一个错误,或者我在某个地方犯了错误; xDebug什么都没显示.

类脚本

class theme {
    function theme() {
        //show header (meta, style, htmldoctype, script, and title) 
        $this->htmlheader();

        //show main content
        //show footer
    }


    function htmlheader() {
        require "localsettings.php";
        echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n<html>\n<head>\n";
        echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n";

        echo "<title>$site_name - $page_title</title>\n";
        echo "</head>\n";
    }
}
Run Code Online (Sandbox Code Playgroud)

的index.php

require "theme.class.php";
$html = new theme();
//display result
$html->theme();
Run Code Online (Sandbox Code Playgroud)

输出(错误重复)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>site title - </title>
</head>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>site title - </title>
</head>
Run Code Online (Sandbox Code Playgroud)

Pet*_*lmo 9

当您将该函数命名为与该类相同时,它是一个"构造函数",并在实例化该类时被调用.因此,您的函数theme()在这里被调用:

$html = new theme();
Run Code Online (Sandbox Code Playgroud)

和这里:

$html->theme();
Run Code Online (Sandbox Code Playgroud)

删除后者,你应该好好去.