PHP 14:类的实例

简介: 原文:PHP 14:类的实例在本章中我们将介绍一个实例,来进一步对类加深了解。本章构建一个Page类,它代表了一个页面。其中有显示页面的title,样式,内容等函数。此页面的效果如下:我们将把这个页面分成几块:1)有图的那一块。
原文: PHP 14:类的实例

在本章中我们将介绍一个实例,来进一步对类加深了解。
本章构建一个Page类,它代表了一个页面。其中有显示页面的title,样式,内容等函数。
此页面的效果如下:

我们将把这个页面分成几块:
1)有图的那一块。
2)有导航按钮的那一块。
3)中间文字的一会
4)页底的这一块

具体看看代码吧:


  1 <?php
  2 class Page
  3  {
  4      //Page Title
  5      public $title="Service In Action Ltd.";
  6      
  7      //Page content.
  8      public $content;
  9      
 10      //Page keywords.
 11      public $keywords="Service ,Action, Field Service, On Demand";
 12      
 13      //Page tabs navigation
 14      public $buttons= array('主页'=>'Service.php',
 15                                '产品'=>'products.php',
 16                             '服务'=>'Service.php',
 17                             '联系我们'=>'Contact.php',
 18                             '网站地图'=>'Sitemap.php');
 19                
 20      //To set page's attributes, such as title,content.                
 21   public function __set($name,$value)
 22   {
 23       $this->$name=$value;
 24   } 
 25   
 26      //To display title
 27      public function DisplayTitle()
 28      {
 29          print "<title>{$this->title}</title>";
 30      }
 31      public function DisplayContent()
 32      {
 33          print $this->content;
 34      }
 35       
 36      //To set the header meta, and set the page keyword so that search engine to scrawl it.
 37      public function DisplayKeywords()
 38      {
 39          print "<meta name=\"keywords\" content=\"{$this->keywords}\" />";
 40      }
 41      public function DisplayPage()
 42      {
 43          print "<html>\n<header>";
 44          $this->DisplayTitle();
 45          $this->DisplayStyles();
 46          print "</header>\n<body>";
 47          $this->DisplayHeader();
 48          $this->DisplayMenus($this->buttons);
 49          $this->DisplayContent();
 50          $this->DisplayFooter();
 51          print "</body>\n</html>";
 52      }
 53      public function DisplayStyles()
 54   { 
 55  ?>   
 56   <style>
 57     h1 {color:white; font-size:24pt; text-align:center; 
 58         font-family:arial,sans-serif}
 59     .menu {color:white; font-size:12pt; text-align:center; 
 60            font-family:arial,sans-serif; font-weight:bold}
 61     td {background:black}
 62     p {color:black; font-size:12pt; text-align:justify; 
 63        font-family:arial,sans-serif}
 64     p.foot {color:white; font-size:9pt; text-align:center; 
 65             font-family:arial,sans-serif; font-weight:bold}
 66     a:link,a:visited,a:active {color:white}
 67   </style>
 68 <?php
 69   }// DisplayStyles() 
 70   
 71  public function DisplayHeader()
 72  {
 73      ?>
 74      <table width="100%" cellpadding ="12" cellspacing ="0" border ="0">
 75   <tr bgcolor ="black">
 76     <td align ="left"><img src = "logo.png" /></td>
 77     <td>
 78         <h1>Service In Action Ltd</h1>
 79     </td>
 80     <td align ="right"></td>
 81   </tr>
 82   </table>
 83      <?php
 84  }
 85  
 86  //To shoe navigation bar
 87  public function DisplayMenus($buttons)
 88  {
 89      if(is_array($buttons)&&count($buttons)==0return;
 90      print  "<table width='100%' bgcolor='white' cellpadding='4'  cellspacing='4'\n";
 91   print "  <tr>\n";
 92 
 93   //calculate button size
 94   $width = 100/count($buttons);
 95 
 96   while (list($name, $url= each($buttons))
 97   {
 98     $this -> DisplayButton($width, $name, $url, !$this->IsURLCurrentPage($url));
 99   }
100   print "  </tr>\n";
101   print "</table>\n";
102  }
103  
104  //Judge the URL is current page.
105  public function IsURLCurrentPage($url)
106   {
107     if(strpos($_SERVER['PHP_SELF'], $url )==false)
108     {
109       return false;
110     }
111     else
112     {
113       return true;
114     }
115   }
116 
117  //To show the buttons.
118   public function DisplayButton($width, $name, $url, $active = true)
119   {
120     if ($active)
121     {
122       print "<td width ='$width%'>
123             <a href ='$url'>
124             <img src ='s-logo.gif' alt ='$name' border ='0' /></a>
125             <a href ='$url'><span class='menu'>$name</span></a></td>";
126     }  
127     else
128     {
129       print "<td width ='$width%'>
130             <img src ='side-logo.gif'>
131             <span class='menu'>$name</span></td>";
132     }  
133   }
134   
135   //To show Footer.
136   public function DisplayFooter()
137      {
138          ?>
139          <table width = "100%" bgcolor ="black" cellpadding ="12" border ="0">
140     <tr>
141       <td>
142         <class="foot">&copy; Service In Action Ltd.</p>
143         <class="foot">请访问我们的
144                       <a href ="">合法信息页面</a></p>
145       </td>
146     </tr>
147     </table>
148     <?php
149      }
150      function iterateVisible() {
151        echo "MyClass::iterateVisible:\n";
152        foreach($this as $key => $value) {
153            print "$key => $value\n";
154        }
155     }
156 
157  }//class Page
158  
159  $page=new Page();
160  $page->content="本页面用来测试我们最先进的服务!正在建设中,很快将会登场!";
161  $page->DisplayPage();
162  //$page->iterateVisible();
163 ?>
代码挺长的。此代码定义了一个Page类,此类有个方法为 DisplayPage()将整个页面显示出来。
此类还提供了很多方法。一一介绍一下了:
1)DisplayTitle
显示页面的标题。
2)DisplayContent
显示页面的内容,就是上面说的第3块。
3) DisplayKeywords
 显示页面的关键字
4) DisplayStyles
显示页面的样式
5) DisplayHeader
  显示页面的头部,即上面的第一块
6)DisplayMenus
 显示菜单或者导航按钮,也就是上面的第2块
7)DisplayFooter
  显示页脚,上面说的第4块。
此类还是比较简单的。不再多说。熟悉一下就可以了。
让我们看看继承吧。假设有一个类用来显示Product。所以我们可以建立一个类ProductPage,并且它继承Page。改变以下显示的Button以及内容即可。
代码如下:
class  ProductPage  extends  Page
 {
      
private   $line2buttons = array ( ' PHP ' => ' PHP.php ' , ' Apache HTTP Server ' => ' Apache.php ' ,
                                   
' MySql ' => ' mysql.php ' , ' Zend Studio ' => ' ZendStudio.php ' ,
                                   
' UEStudio ' => ' http://www.ultraedit.com ' );
          
public   function  DisplayPage()
     {
         
print   " <html>\n<header> " ;
         
$this -> DisplayTitle();
         
$this -> DisplayStyles();
         
print   " </header>\n<body> " ;
         
$this -> DisplayHeader();
         
$this -> DisplayMenus( $this -> buttons);
         
$this -> DisplayMenus( $this -> line2buttons);
         
$this -> DisplayContent();
         
$this -> DisplayFooter();
         
print   " </body>\n</html> " ;
     }
 }

 
$page = new  ProductPage();
 
$page -> content = " 本页面用来测试我们最先进的产品!这些产品正在测试中,很快将会粉墨登场!请耐心等待 " ;
 
$page -> DisplayPage();
运行的效果如下:

具体代码就不说了。
代码下载点击 这里
以上就是类的应用了。
目录
相关文章
|
Java 程序员 PHP
PHP对象和类
PHP对象和类
265 0
|
设计模式 算法 数据库连接
PHP中的设计模式:提高代码的可维护性与扩展性本文旨在探讨PHP中常见的设计模式及其应用,帮助开发者编写出更加灵活、可维护和易于扩展的代码。通过深入浅出的解释和实例演示,我们将了解如何使用设计模式解决实际开发中的问题,并提升代码质量。
在软件开发过程中,设计模式是一套经过验证的解决方案模板,用于处理常见的软件设计问题。PHP作为流行的服务器端脚本语言,也有其特定的设计模式应用。本文将重点介绍几种PHP中常用的设计模式,包括单例模式、工厂模式和策略模式,并通过实际代码示例展示它们的具体用法。同时,我们还将讨论如何在实际项目中合理选择和应用这些设计模式,以提升代码的可维护性和扩展性。
363 4
|
PHP
PHP的pcntl多进程用法实例
PHP使用PCNTL系列的函数也能做到多进程处理一个事务。
239 12
|
设计模式 数据库连接 PHP
PHP中的设计模式:如何提高代码的可维护性与扩展性在软件开发领域,PHP 是一种广泛使用的服务器端脚本语言。随着项目规模的扩大和复杂性的增加,保持代码的可维护性和可扩展性变得越来越重要。本文将探讨 PHP 中的设计模式,并通过实例展示如何应用这些模式来提高代码质量。
设计模式是经过验证的解决软件设计问题的方法。它们不是具体的代码,而是一种编码和设计经验的总结。在PHP开发中,合理地使用设计模式可以显著提高代码的可维护性、复用性和扩展性。本文将介绍几种常见的设计模式,包括单例模式、工厂模式和观察者模式,并通过具体的例子展示如何在PHP项目中应用这些模式。
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP开发领域,设计模式是解决常见问题的高效方案集合。它们不是具体的代码,而是一种编码和设计经验的总结。单例模式作为设计模式中的一种,确保了一个类仅有一个实例,并提供一个全局访问点。本文将深入探讨单例模式的基本概念、实现方式及其在PHP中的应用。
单例模式在PHP中的应用广泛,尤其在处理数据库连接、日志记录等场景时,能显著提高资源利用率和执行效率。本文从单例模式的定义出发,详细解释了其在PHP中的不同实现方法,并探讨了使用单例模式的优势与注意事项。通过对示例代码的分析,读者将能够理解如何在PHP项目中有效应用单例模式。
|
PHP
PHP中的面向对象编程:理解类与对象
本文将深入探讨PHP中面向对象编程的核心概念——类与对象。通过实例讲解,帮助读者更好地理解如何在PHP中运用OOP编写更高效、可维护的代码。
313 9
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
394 2
|
PHP 开发者
PHP中的面向对象编程:掌握类与对象的精髓
探索PHP的面向对象编程世界,本文将带你了解如何通过创建和操作类来实例化对象。我们将深入讲解类的声明、构造函数的使用以及继承和多态性的概念。准备好,让我们一起在代码的海洋中航行,揭开PHP对象编程的神秘面纱!
|
PHP
如何在PHP中创建一个自定义的观察者类?
【7月更文挑战第2天】如何在PHP中创建一个自定义的观察者类?
238 0
|
PHP
PHP中,你可以使用class关键字来定义一个类
【7月更文挑战第2天】PHP中,你可以使用class关键字来定义一个类
232 0