程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP基礎知識 >> PHP中類的理解和應用

PHP中類的理解和應用

編輯:PHP基礎知識
 

許多PHP的愛好者在學習過程中感到對PHP中類的概念較難理解和掌握,雖然知道類既然存在就有其存在的道理,但是由於平時接觸和使用的機會較少,也就一略而過。其實,只要我們理解變量和函數這些PHP基本概念的話,掌握類的含義就不成問題。鑒於類在PHP的重要作用,本文將結合具體事例介紹PHP中類的概念和應用。
(一)
  所謂類就是指由變量和作用於變量的函數組成的集合。類提供了一種對現實世界中事物的描述方式。通過有效的使用類,我們可以將描述同一對象的多個變量和函數組合在一起,作為一個整體使用,從而使編寫出來的程序更直觀,更合理,更易於維護。

  舉一個比較通俗的例子,我們可以創建一個名為Bike的類來描述現實生活中的一輛自行車。首先,我們設定該類中的變量包括踏板$pedals,鏈條$chain,前輪$front wheel,後輪$rear wheel,剎車$brakes, 以及手柄$handle。然後,我們創建停車Stop(), 加速Accelerate(), 左轉TurnLeft()和右轉TurnRight()等函數。這樣,我們就有了一個可以描述自行車這一對象所有行為和屬性的類。例如,我們可以將$front wheel 和$rear wheel變量傳入TurnLeft()函數,從而得到某種輸出結果。

  也許有人會問上述例子雖然有趣,但是我們完全可以使用常規的變量和函數實現同樣功能,為什麼一定要堅持使用這麼煩瑣的類呢?當然,如果我們在腳本中只需要描述一輛自行車話,定義一個類似乎沒有什麼特殊的價值。但是,如果當腳本需要涉及多輛自行車時呢?如果我們還是采用常規的為每量自行車都定義變量和函數的方法,那麼光是跟蹤每個變量,確保正確的變量輸入正確的函數就是一項相當復雜的工作。相反,如果采用類的方式,就可以有效的減少所需變量的數量。此外,一個已經定義的類還可以被包含在其它文件或腳本中,從而實現代碼的重復利用。
(二)
  對PHP類的概念有所了解之後,我們就來具體看一下如何在腳本中創建和使用類。

  相信大家在創建站點時一定會因為要顧及頁面的顯示效果,字體的樣式和大小等細節而影響對整個頁面布局和整個站點流程的設計和構思。下面,我們就利用PHP的類來控制HTML的頁面輸出。

  首先,我們使用如下代碼創建一個名為Style的類,並在類中定義設置頁面屬性所需的變量:

<?php

class Style {

var $text;

var $alink;

var $vlink;

var $link;

var $bgcol;

var $face;

var $size;

var $align;

var $valign;

}

?>

  相信熟悉HTML語言的讀者一定不會對我們在Style類中聲名的變量感到陌生。

  下面,我們在Style類中創建一個與類同名的函數。代碼如下:

<?php

class Style {

function Style ($text="#000000",$alink="#AA00AA",$vlink="#AA00AA",

$link="#3333FF",$bgcol="#999999",$face="Arial",$size=3,

$align="CENTER",$valign= "TOP")

{

$this->text=$text;

$this->alink=$alink;

$this->vlink=$vlink;

$this->link=$link;

$this->bgcol=$bgcol;

$this->face=$face;

$this->size=$size;

$this->align=$align;

$this->valign=$valign;

}

}

?>

說明:

在類中可以使用“$this”指代類本身,使用“->”運算符引用類中的各個變量或函數。類中創建的與類同名的函數稱為構造函數。構造函數在創建新的對象實例時自動執行,從而將類中設定的默認值賦予該對象實例。

  PHP中,我們可以通過創建對象實例的方法使用一個已經定義的類。語法格式如下:

  <?php $Instance_name = new Class; ?>

  例如,本例中我們可以使用如下代碼創建一個名為$Basic的對象實例,該對象實例將自動獲得Style類中構造函數指定的默認值:

  <?php $Basic = new Style; ?>

  一個類可以創建多個對象實例,其中每個對象實例都繼承該類的默認屬性,可以調用類中的所有變量和函數。有時我們可能需要為由同一個類創建的多個對象實例設置不同的屬性,雖然我們可以在創建對象實例時修改類的默認值,但是這種方式一方面缺乏靈活性,另一方面按照PHP的約定,如果用戶在創建新的對象實例時聲明了某個變量值的話,則必須同時聲明該類中所聲明變量之後的所有變量。例如,如果我們在創建$Basic對象實例時顯式修改了text變量值的話,則必須同時再聲明該類中位於text變量之後的所有變量,即Style類的全部變量都需要再重新聲明一遍。顯然,我們需要使用其它更為便捷的方式修改對象實例中的某個變量值。這裡,我們可以通過在Style類中創建一個專門用於修改變量值的函數實現上述功能。具體代碼如下:

Function Set($varname,$value) {

$this->$varname=$value;

}

  例如,如果我們需要將$Basic對象實例中size變量的值改為2時,使用如下代碼即可實現:

<?php $Basic->Set( ‘size’, 2); ?>

說明:

->運算符用於向PHP解釋器說明運行$Basic對象實例中的Set()函數。

  通過有效的使用Set()函數,我們可以靈活的設置和控制不同的對象實例。比方說,如果我們希望為頁面輸出表格的標題行和內容行設置不同的背景顏色和字體大小的話,可以首先創建兩個對象實例,然後使用Set()函數分別設置各自不同的屬性。具體代碼如下:

<?php  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved