我正在尝试学习PHP,所以我很可能会犯一个非常初级的错误。
基本上,我有一个页面.php文件,它是我要创建的页面的类文件,我想将其包含在我的主页.php页面中(我使用 require 函数执行此操作)。但是,什么也没出现。我是根据我正在读的一本书来做的,它似乎在那里工作得很好。
页.php:
<?php
class Page {
// attributes
public $content;
public $title = "TLA Consulting Pty Ltd";
public $keywords = "TLA Consulting, Three Letter Abbreviation, some of my best friends are search engines";
public $buttons = array("Home" => "home.php", "Contact" => "contact.php", "Services" => "services.php", "Site Map" => "map.php");
public function __set($name, $value) {
$this->$name = $value;
}
public function display() {
echo "<html>'n<head>'n";
$this->displayTitle();
$this->displayKeywords();
$this->displayStyle();
echo "</head>'n<body>'n";
$this->displayHeader();
$this->displayMenu($this->buttons); // try this line without giving it the parameter
echo $this->content;
$this->displayFooter();
echo "</body>'n</html>";
}
public function displayTitle() {
echo "<title>$this->title</title>";
}
public function displayKeywords() {
echo "<meta name='"keywords'" content='"$this->keywords'" />";
}
public function displayStyle() {
?>
<style>
h1 {
color: white;
font-size: 24px;
text-align: center;
font-family: helvetica, arial, sans-serif;
}
.menu {
color: white;
font-size: 12px;
text-align: center;
font-family: helvetica, arial, sans-serif;
font-weight: bold;
}
td {
background-color: black;
}
p {
color: black;
font-size: 12px;
text-align: justify;
font-family: helvetica, arial, sans-serif;
}
</style>
<?php
}
public function displayHeader() {
?>
<table width="100%" cellpadding="12" cellspacing="0" border="0">
<tr bgcolor="black">
<td aling="left"><img src="http://i.imgur.com/xBrUZ.png" alt="Iron Man's finger" /></td>
<td><h1>TLA Consulting Pty Ltd</h1></td>
</tr>
</table>
<?php
}
public function displayMenu($buttons) {
echo "<table width='"100%'" bgcolor='"white'">'n";
echo "<tr>'n";
// calculate button size
$width = 100 / count($buttons);
while (list($name, $url) = each($buttons)) {
$this -> displayButton($width, $name, $url, !this->IsURLCurrentPage($url));
}
echo "</tr>'n</table>'n";
}
public function IsURLCurrentPage($url) {
if (!strpos($_SERVER['PHP_SELF'], $url)) {
return false;
}
else {
return true;
}
}
public function displayButton($width, $name, $url, $active = true) {
if ($active) {
echo "<td width='"".$width."%'">
<a href='"$url'"><img src='"http://i.imgur.com/xBrUZ.png'" alt='"$name'" /></a>
<a href='"$url'"><span class='"menu'">$name</span></a>
</td>";
}
else {
echo "<td width='"".$width."%'">
<img src='"http://i.imgur.com/xBrUZ.png'" />
<span class='"menu'">$name</span>
</td>";
}
}
public function displayFooter() {
echo "<p>I am a footer ololz</p>";
}
}
?>
首页.php:
<?php
require("page.php");
$homepage = new Page();
$homepage->content = "<p>Hi there, I like blueberries greatlly.</p>
<p>I hope you'll join me in loving blueberries!</p>"
$homepage->display();
?>
任何见解将不胜感激。
两个问题:
-
this
应该$this
page.php
的第 86 行。 - 您需要在
...blueberries!</p>"
末尾加一个分号
如果未启用错误报告,则可能不会看到错误。
您使用php的开头和结尾不一致。
例如这里:
public function displayStyle() {
?>
<style>
h1 {
color: white;
font-size: 24px;
text-align: center;
font-family: helvetica, arial, sans-serif;
}
.menu {
color: white;
font-size: 12px;
text-align: center;
font-family: helvetica, arial, sans-serif;
font-weight: bold;
}
td {
background-color: black;
}
p {
color: black;
font-size: 12px;
text-align: justify;
font-family: helvetica, arial, sans-serif;
}
</style>
<?php
}
您正在启动一个函数,然后通过关闭 php 块"?>"来破坏它并粘贴一个样式表部分,该部分将在页面加载时回显。如果要使用此函数显示样式,则必须使其如下所示:
<?php
public function displayStyle() {
echo "<style>".
"h1 {".
"color: white;";
}
?>
在主页中.php文件中,您在 ine 10 中缺少分号
在页面.php文件中,第 86 行缺少字符"$"
$this -> displayButton($width, $name, $url, !$this->IsURLCurrentPage($url));