PHP中類的理解和應用 二

2021-04-17 08:36:24 字數 2534 閱讀 7655

許多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

?>

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

下面,我們在style類中建立乙個與類同名的函式。**如下:

<?php

class style

} ?>

說明:在類中可以使用「$this」指代類本身,使用「->」運算子引用類中的各個變數或函式。類中建立的與類同名的函式稱為建構函式。建構函式在建立新的物件例項時自動執行,從而將類中設定的預設值賦予該物件例項。

php中,我們可以通過建立物件例項的方法使用乙個已經定義的類。語法格式如下:

<?php $instance_name = new class; ?>

例如,本例中我們可以使用如下**建立乙個名為$basic的物件例項,該物件例項將自動獲得style類中建構函式指定的預設值:

<?php $basic = new style; ?>

乙個類可以建立多個物件例項,其中每個物件例項都繼承該類的預設屬性,可以呼叫類中的所有變數和函式。有時我們可能需要為由同乙個類建立的多個物件例項設定不同的屬性,雖然我們可以在建立物件例項時修改類的預設值,但是這種方式一方面缺乏靈活性,另一方面按照php

的約定,如果使用者在建立新的物件例項時宣告了某個變數值的話,則必須同時宣告該類中所宣告變數之後的所有變數。例如,如果我們在建立$basic物件例項時顯式修改了text變數值的話,則必須同時再宣告該類中位於text變數之後的所有變數,即style類的全部變數都需要再重新宣告一遍。顯然,我們需要使用其它更為便捷的方式修改物件例項中的某個變數值。這裡,我們可以通過在style類中建立乙個專門用於修改變數值的函式實現上述功能。具體**如下:

function set($varname,$value)

例如,如果我們需要將$basic物件例項中size變數的值改為2時,使用如下**即可實現:

<?php $basic->set( 『size』, 2); ?>

說明:->運算子用於向php

直譯器說明執行$basic物件例項中的set()函式。

通過有效的使用set()函式,我們可以靈活的設定和控制不同的物件例項。比方說,如果我們希望為頁面輸出**的標題行和內容行設定不同的背景顏色和字型大小的話,可以首先建立兩個物件例項,然後使用set()函式分別設定各自不同的屬性。具體**如下:

<?php

$tableheader= new style;

$tableheader->set( 'text', '#0000ff');

$tableheader->set( 'bgcol', '#000000');

?>

<?php

$tablecontent=new style;

$tablecontent->set( 'bgcol', '#aaaaaa');

$tablecontent->set( 'size',2);

?>

PHP中類的理解和應用

本文有 勵志語錄網整理許多php的愛好者在學習過程中感到對php中類的概念較難理解和掌握,雖然知道類既然存在就有其存在的道理,但是由於平時接觸和使用的機會較少,也就一略而過。其實,只要我們理解變數和函式這些php基本概念的話,掌握類的含義就不成問題。鑑於類在php的重要作用,本文將結合具體事例介紹p...

PHP類中的 get 和

類預設自帶的 get 和 set 當試圖獲取乙個不可達變數時,類會自動呼叫 get 所以在php中相當於可以直接用物件訪問私有屬性 因為會自動呼叫 get 方法 a new物件 modeltime newmodeltime b 用new出來的物件直接呼叫屬性 echo modeltime perda...

php中關於 和 的理解和認識

var dump 1 1e0 true var dump 1 1ef false 這兩個的結果為什麼不一樣啊 這確實是乙個很鬱悶的問題,為什麼呢?當然一點點看原始碼。看相關的引用到函式。檢視compare function 在compare function中,當倆個比較運算元都是string的時候...