深入了解PHP類Class的概念
更新時(shí)間:2012年06月14日 12:23:54 作者:
日常環(huán)境由無數(shù)實(shí)體組成:植物、人群、交通工具、食物……實(shí)在是太多了,光是把它們列出來都要花上幾個(gè)小時(shí)的時(shí)間。每個(gè)實(shí)體都由一組性質(zhì)和行為來定義
例如,一個(gè)交通工具可以定義有顏色、輪胎數(shù)、制造商、型號(hào)和容量等性質(zhì),并定義有停止、前進(jìn)、轉(zhuǎn)彎和鳴笛等行為。在OOP術(shù)語中,實(shí)體的性質(zhì)和行為的具體定義稱為類(class)。
類的定義與創(chuàng)建
類是具有相同屬性和服務(wù)的一組對(duì)象的集合。它為屬于該類的所有對(duì)象提供了統(tǒng)一的抽象描述,其內(nèi)部包括屬性和方法兩個(gè)主要部分。在面向?qū)ο蟮木幊陶Z言中,類是一個(gè)獨(dú)立的程序單位,它應(yīng)該有一個(gè)類名并包括屬性說明和方法說明兩個(gè)主要部分。
類用于表示要在應(yīng)用程序中處理的實(shí)際事物。例如,假設(shè)要?jiǎng)?chuàng)建一個(gè)管理公共圖書館的應(yīng)用程序,可能就要包括一些類來表示書籍、雜志、員工、特殊事件、顧客以及需要管理的其他事物。每個(gè)實(shí)體都包含一組性質(zhì)和行為,在OOP中分別稱為字段(field)和方法(method),它們定義了實(shí)體。PHP 中一般的類創(chuàng)建語法如下:
class Class_Name
{
// 字段聲明
// 方法聲明
}
創(chuàng)建一個(gè)類:
class Employee
{
private $name;
private $title;
protected $wage;
protected function clockIn() {
echo "Member $this->name clocked in at ".date("h:i:s");
}
protected function clockOut() {
echo "Member $this->name clocked out at ".date("h:i:s");
}
}
這個(gè)類名為Employee,定義了3個(gè)字段:name、title和wage,還定義了兩個(gè)方法:clockIn(簽到)和clockOut(簽離)。
類的應(yīng)用
一個(gè)定義了屬性和方法的類就是一個(gè)完整的類了,可以在一個(gè)類里面包含一個(gè)完整的處理邏輯。使用 new 關(guān)鍵字來實(shí)例化一個(gè)對(duì)象以便應(yīng)用類里面的邏輯??梢酝瑫r(shí)實(shí)例化多個(gè)對(duì)象。
類的實(shí)例化:
object = new class_name();
實(shí)例化一個(gè)對(duì)象后,使用 -> 操作符來訪問對(duì)象的成員屬性和方法。比如:
object->var_name;
object->function_name;
如果要在定義的類里面訪問成員的屬性或者方法,可以使用偽變量 $this 。$this 用于表示當(dāng)前對(duì)象或?qū)ο蟊旧?。
<?php
class Person {
// 人的成員屬性
var $name; //人的名字
var $age; //人的年齡
//人的成員 say() 方法
function say() {
echo "我的名字叫:".$this->name."<br />";
echo "我的年齡是:".$this->age;
}
}
//類定義結(jié)束
$p1 = new Person(); //實(shí)例化一個(gè)對(duì)象
$p1->name = "Gonn"; //給 $p1 對(duì)象屬性賦值
$p1->age = 25;
$p1->say(); //調(diào)用對(duì)象中的 say()方法
?>
程序運(yùn)行結(jié)果:
我的名字叫:Gonn
我的年齡是:25
類的定義與創(chuàng)建
類是具有相同屬性和服務(wù)的一組對(duì)象的集合。它為屬于該類的所有對(duì)象提供了統(tǒng)一的抽象描述,其內(nèi)部包括屬性和方法兩個(gè)主要部分。在面向?qū)ο蟮木幊陶Z言中,類是一個(gè)獨(dú)立的程序單位,它應(yīng)該有一個(gè)類名并包括屬性說明和方法說明兩個(gè)主要部分。
類用于表示要在應(yīng)用程序中處理的實(shí)際事物。例如,假設(shè)要?jiǎng)?chuàng)建一個(gè)管理公共圖書館的應(yīng)用程序,可能就要包括一些類來表示書籍、雜志、員工、特殊事件、顧客以及需要管理的其他事物。每個(gè)實(shí)體都包含一組性質(zhì)和行為,在OOP中分別稱為字段(field)和方法(method),它們定義了實(shí)體。PHP 中一般的類創(chuàng)建語法如下:
復(fù)制代碼 代碼如下:
class Class_Name
{
// 字段聲明
// 方法聲明
}
創(chuàng)建一個(gè)類:
復(fù)制代碼 代碼如下:
class Employee
{
private $name;
private $title;
protected $wage;
protected function clockIn() {
echo "Member $this->name clocked in at ".date("h:i:s");
}
protected function clockOut() {
echo "Member $this->name clocked out at ".date("h:i:s");
}
}
這個(gè)類名為Employee,定義了3個(gè)字段:name、title和wage,還定義了兩個(gè)方法:clockIn(簽到)和clockOut(簽離)。
類的應(yīng)用
一個(gè)定義了屬性和方法的類就是一個(gè)完整的類了,可以在一個(gè)類里面包含一個(gè)完整的處理邏輯。使用 new 關(guān)鍵字來實(shí)例化一個(gè)對(duì)象以便應(yīng)用類里面的邏輯??梢酝瑫r(shí)實(shí)例化多個(gè)對(duì)象。
類的實(shí)例化:
復(fù)制代碼 代碼如下:
object = new class_name();
實(shí)例化一個(gè)對(duì)象后,使用 -> 操作符來訪問對(duì)象的成員屬性和方法。比如:
復(fù)制代碼 代碼如下:
object->var_name;
object->function_name;
如果要在定義的類里面訪問成員的屬性或者方法,可以使用偽變量 $this 。$this 用于表示當(dāng)前對(duì)象或?qū)ο蟊旧?。
復(fù)制代碼 代碼如下:
<?php
class Person {
// 人的成員屬性
var $name; //人的名字
var $age; //人的年齡
//人的成員 say() 方法
function say() {
echo "我的名字叫:".$this->name."<br />";
echo "我的年齡是:".$this->age;
}
}
//類定義結(jié)束
$p1 = new Person(); //實(shí)例化一個(gè)對(duì)象
$p1->name = "Gonn"; //給 $p1 對(duì)象屬性賦值
$p1->age = 25;
$p1->say(); //調(diào)用對(duì)象中的 say()方法
?>
程序運(yùn)行結(jié)果:
復(fù)制代碼 代碼如下:
我的名字叫:Gonn
我的年齡是:25
相關(guān)文章
php中照片旋轉(zhuǎn) (orientation) 問題的正確處理
這篇文章主要介紹了php中照片旋轉(zhuǎn) (orientation) 問題的正確處理,文中給出了詳細(xì)的介紹和示例代碼,相信對(duì)大家具有一定的參考價(jià)值,有需要的朋友們下面來一起看看吧。2017-02-02
PHP+JS三級(jí)菜單聯(lián)動(dòng)菜單實(shí)現(xiàn)方法
這篇文章主要介紹了PHP+JS三級(jí)菜單聯(lián)動(dòng)菜單實(shí)現(xiàn)方法,涉及JavaScript動(dòng)態(tài)控制頁面樣式及PHP數(shù)據(jù)庫操作相關(guān)技巧,需要的朋友可以參考下2016-02-02
PHP遞歸遍歷多維數(shù)組實(shí)現(xiàn)無限分類的方法
這篇文章主要介紹了PHP遞歸遍歷多維數(shù)組實(shí)現(xiàn)無限分類的方法,涉及PHP遞歸操作遍歷數(shù)組的相關(guān)技巧,在聯(lián)動(dòng)菜單及父子欄目設(shè)計(jì)等方面非常具有實(shí)用價(jià)值,需要的朋友可以參考下2016-05-05
PHP進(jìn)階學(xué)習(xí)之反射基本概念與用法分析
這篇文章主要介紹了PHP進(jìn)階學(xué)習(xí)之反射基本概念與用法,結(jié)合實(shí)例形式分析了php反射的概念、原理基本用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-06-06

