实例分析——深入理解PHP的类和对象

在面向对象的编程中,任何一个事物都是对象,web页面也不例外。接下来就用PHP创建一个代表web页面的类,使用该类可生成一个HTML页面。

(1)声明属性

一个web页面就是一个HTML文档,应该有标题和内容,这里再加一个meta关键字,有利于搜索引擎搜索到该web页面。所以这个web页面类的属性是标题,内容和关键字。它们都是公共属性。

一个web页面还需要有一个导航栏,所以需要声明一个存放导航栏内容的属性。在这里将属性声明成数组,用数组来存放导航栏的内容。

class page{
    public $title = "音乐唱片大全";              //页面标题
    publuc $content;                           //页面内容
    public $keywords = "music,音乐,MP3";       //页面关键字
 
    public $daohang = array{                        //页面导航数组
            '主页'=>'#'; 
            '资源'=>'#';
            '关于'=>'#';
            '搜索'=>'#';
            '联系我们'=>'#';
    };
}

(2)定义该类的方法,通过这些类的方法可以生成web页面的各个部分。比如web页面的页头部分,关键字部分,css部分,正文部分,页底部分等等。

(3)实现页头部分

一个页头部分主要显示网站名称和LOGO。在这次实例中我们将这个内容放在表格中,然后在类的方法中用echo输出。

public function DisplayHeader(){
        echo "<table width = \"100%\" border=\"1\">";
        echo "<tr>";
        echo "<td bgcolor =\"#ffffff\">";
        echo "<td align =\"left\"><img src =\"#\"></td>";
        echo "<h1>音乐唱片大全</h1>";
        echo "</td>";

        echo "</tr>";
        echo "</table>";
}

(4)输出关键字部分

关键字定义在meta标签里

public function DisplayKeywords(){
        echo "<meta name=\"keywords\"";
        echo $this->keywords;
        echo "\" />\r\n";
}

(5)实现其他显示web页面各个部分的类方法与上面类似

最后附上完整代码

display.php这个是包含类的文件

<?php
header("content-type:text/html;charset=utf8");

class page{
	public $title = "音乐唱片大全";
	public $content;
	public $keywords = "MP3,music,唱片";

	public $daohang = array('主页'=>'#','资源'=>'#','服务'=>'#','搜索'=>'#','联系我们'=>'#');


public function DisplayTitle(){
		echo "<title>";
		echo $this->title;
		echo "</title>\r\n";
}
public function DisplayContent(){  //输出页面主内容
		echo $this->content;
}
public function DisplayKeywords(){   //显示页面关键字
		echo "<meta name=\"keywords\"";
        echo $this->keywords;
        echo "\"/>\r\n";
}
public function DisplayPage(){        //输出整个页面
	echo "<html>\r\n<header>";
	$this->DisplayTitle();
	$this->DisplayCSS();
	$this->DisplayKeywords();
	echo "</header>\r\n<body>";

    $this->DisplayHeader();
    $this->DisplayDaohang($this->daohang);
    $this->DisplayContent();

    $this->DisplayFooter();

    echo "</body>\r\n</html>";
}
public function DisplayHeader(){  //输出页头部分
		echo "<table width =\"100%\" border=\"1\">";
        echo "<tr>";
        echo "<td bgcolor =\"#ffffff\">";
        echo "<td align =\"left\"><img src =\"#\"></td>";
        echo "<h1>音乐唱片大全</h1>";
        echo "</td>";

        echo "</tr>";
        echo "</table>";
}

public function DisplayDaohang($daohang){   //输出导航部分
	if(is_array($daohang) && count($daohang)==0){
			return;
	}
	echo "<table width=\"100%\" bgcolor=\"#ffffff\">";
	echo "<tr>\n";
	//calculate button size
	$width = 100/count($daohang);

	while(list($name,$url)=each($daohang)){
		$this->DisplayButton($width,$name,$url,!$this->IsURLCurrentPage($url));
	}

	echo "</tr>\n";
	echo "</table>\n";
}
public function IsURLCurrentPage($url){
	if (strpos($_SERVER['PHP_SELF'], $url)==false) {
		return false;
	}
	else{
		return true;
	}

}
public function DisplayButton($width,$name,$url,$active=true){   //输出按钮
	if($active){
		echo "<td width=\"$width%\" align:\"center\">";
		echo "<a href =\"$url\">";
		echo "<a href =\"$url\"><span class=\"menu\">$name</span></a></tdd>";
	}else{
		echo "<td width=\"$width%\">";
		echo "<img src =\"#\">";
		echo "<span class=\"menu\">$name</span></td>";
	}
}

public function DisplayCSS(){   //显示css样式
		echo "<style>\r\n";
		echo "h1{color:#000000;font-size:25px;text-align:center}";
		echo ".menu{color:#256114;font-size:12px;text-align:center;font-weight:bold}";
		echo "td{bgcolor:#EFEFEF}";
		echo "p{color:black;font-size:15px;text-align:center;}";

		echo "a:link,a:visited,a:active{color:#256114}";
		echo "</style>";
}

public function DisplayFooter(){   //输出页脚部分

	    echo "<table width = \"100%\" border=\"1\">";
        echo "<tr>";
        echo "<td>";
        echo "<p>版权所有 By Apache/PHP/Mysql</p>";
        echo "</td>";
        echo "</tr>";
        echo "</table>";

}
}
?>

这个是调用display.php的文件 

<?php
include("display.php");
$page = new Page();
$page->content="<p>XXXXXXXXXXXXXXXXXXXXXXX</p>";
$page->DisplayPage();
?>

最后呈现结果

-------------------------------------------------------------------

还是主要理解类和对象吧,这样写网页真的好奇怪= = || 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值