明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

PHP中的類-什么叫類(轉(zhuǎn)載)------ 類基礎之捷徑

[摘要]PHP中的類-什么叫類Linuxaid 01-03-08 10:16 1594p Wing------------------------------------------------------...
PHP中的類-什么叫類

Linuxaid 01-03-08 10:16 1594p Wing
--------------------------------------------------------------------------------


在闡述類的概念之前我們來先說說面向?qū)ο缶幊痰母拍睿好嫦驅(qū)ο蟮某绦蛟O計(Object-Oriented Programming,簡記為OOP)立意于創(chuàng)建軟件重用代碼,具備更好地模擬現(xiàn)實世界環(huán)境的能力,這使它被公認為是自上而下編程的優(yōu)勝者。它通過給程序中加入擴展語句,把函數(shù)“封裝”進編程所必需的“對象”中。面向?qū)ο蟮木幊陶Z言使得復雜的工作條理清晰、編寫容易。說它是一場革命,不是對對象本身而言,而是對它們處理工作的能力而言。對象并不與傳統(tǒng)程序設計和編程方法兼容,只是部分面向?qū)ο蠓炊鴷骨樾胃。除非整個開發(fā)環(huán)境都是面向?qū)ο蟮模駝t對象產(chǎn)生的好處還沒有帶來的麻煩多。有人可能會說PHP不是一個真正的面向?qū)ο缶幊痰恼Z言, PHP 是一個混合型 語言,你可以使用面向?qū)ο缶幊,也可以使用傳統(tǒng)的過程化編程。然而,對于大型項目的開發(fā),你可能想需要在PHP中使用純的面向?qū)ο缶幊倘ヂ暶黝,而且在你的項目開發(fā)只用對象和類。隨著項目越來越大,使用面向?qū)ο缶幊炭赡軙袔椭,面向(qū)ο缶幊檀a很容易維護,容易理解和重復使用,這些就是軟件工程的基礎。在基于Web的項目中應用這些概念就成為將來網(wǎng)站成功的關鍵。
對象(Object)是問題域或?qū)崿F(xiàn)域中某些事物的一個抽象,它反映此事物在系統(tǒng)中需要保存的信息和發(fā)揮的作用;它是一組屬性和有權對這些屬性進行操作的一組服務的封裝體。 關于對象要從兩方面理解:一方面指系統(tǒng)所要處理的現(xiàn)實世界中的對象;另一方面對象是計算機不直接處理的對象,而是處理相應的計算機表示,這種計算機表示也稱為對象。簡單的來說,一個人就是一個對象,一個尺子也可以說是個對象。當這些對象可以用數(shù)據(jù)直接表示時,我們就稱他為屬性,尺子的度量單位可以是厘米,公尺或英尺,這個度量單位就是尺子的屬性。
在PHP里我們可以定義一個類,類(Class)就是指變量與一些使用這些變量的函數(shù)的集合。PHP是一種松散類型的語言,所以通過類型重載不起作用,通過參數(shù)的個數(shù)不同來重載也不起作用。 有時在面向中重載構造函數(shù)非常好,這樣你可以通過不同的方法創(chuàng)建對象(傳遞不同數(shù)量的參數(shù))。在PHP中就是通過類來實現(xiàn)的。
在PHP中是通過類來完成信息封裝的,在PHP中定義類的語法是:
<?php
class Class_name // 在面向?qū)ο缶幊填愔,習慣上類的第一個字符為大寫,并且必須符合變量的命名規(guī)則。
{

//函數(shù)與變量的集合

}
?>
在定義類時你可以按自已的喜好的格式進行定義,但最好能保持一種標準,這樣開發(fā)起來會更有效些。
數(shù)據(jù)成員在類中使用"var"聲明來定義,在給數(shù)據(jù)成員賦值之前,它們是沒有類型的。一個數(shù)據(jù)成員可以是一個整數(shù),一個數(shù)組,一個相關數(shù)組(Associative Array)或者是一個對象。
下面是一個類定義的實際例子:
<?php
class Student
{
var $str_Name; //姓名
var $str_Sex; //性別
var $int_Id; //學號
var $int_English;//英語成績
var $int_maths; //數(shù)學成績
}
?>
這是一個很普通定義類的簡單例子,用于顯示學生的學習成績,類名為Student,Student類包涵了一個學生的基本屬性:姓名、性別、學號、英語成績和數(shù)學成績。
function我們稱之為在類中被定義的函數(shù),在函數(shù)中訪問類成員變量時,你應該使用$this->var_name,其中var_name指的是類中被聲明的變量,否則對一個函數(shù)來說,它只能是局部變量。 我們先定義一個Input()的函數(shù),用來給實例中的對象賦以初值:
functionInput ( $Name, $Sex, $Id, $Englis, $Maths)
 {
 $this->str_Name=$Name;
 $this->str_Sex =$Sex;
 $this->int_Id =$Id;
 $this->int_Englis=$English;
$this->int_Maths=$Maths;
 }
現(xiàn)在我們再定義一個叫“ShowInfo()”的函數(shù),用于打印學生的基本情況:
function ShowInfo()//定義ShowInfo()函數(shù)
{
echo (“姓名:$this->str_Name<br>
”);
echo (“性別:$this->str_Sex <br>
”);
echo (“學號:$this->int_Id <br>
”);
echo (“英語成績:$this->int_English <br>
”);
echo (“數(shù)學成績:$this->int_Maths <br>
”);
}

而定義好的類則必須使用new關鍵詞來生成對象:
$A_student=new Student;
例如我們要為一個名為$Wing的對象創(chuàng)建實例,并進行賦值,可以使用下面的代碼:
$Wing =new Student;//用new關鍵詞來生成對象
$Wing ->Input (“Wing”,”男”,33,95,87);
//分別輸入Wing的姓名、性別、學號、英語成績、數(shù)學成績,其中姓名和性別是字符型變量,所以需要用雙引號,其它為數(shù)值型變量則不需要。
通過下面這段完整的源代碼,我們就可以很清楚的看到類在PHP是怎么被運用的:

<?php

class Student
{
var $str_Name;
var $str_Sex;
var $int_Id;
var $int_English;
var $int_maths;

functionInput ( $Name, $Sex, $Id, $English, $Maths)
 {
 $this->str_Name=$Name;
 $this->str_Sex =$Sex;
 $this->int_Id =$Id;
 $this->int_English=$English;
$this->int_Maths=$Maths;
}
function ShowInfo()
{
echo (“姓名:$this->str_Name<br>
”);
echo (“性別:$this->str_Sex <br>
”);
echo (“學號:$this->int_Id <br>
”);
echo (“英語成績:$this->int_English <br>
”);
echo (“數(shù)學成績:$this->int_Maths <br>
”);
}
 }


$Wing = new Student;
$Wing->Input (“Wing”,”男”,33,95,87);
$Paladin = new Student;
$Paladin->Input (“paladin”,”女”,38,58,59.5);

$Wing->ShowInfo();
$Paladin->ShowInfo();

?>
執(zhí)行結(jié)果應是這樣的:
姓名:Wing
性別:男
學號:33
英語成績:95
數(shù)學成績:87
姓名:Paladin
性別:女
學號:38
英語成績:58
數(shù)學成績:59.5

PHP現(xiàn)有的版本較以前的版本在對面向?qū)ο缶幊痰闹С址矫嬗辛撕艽蟮母纳,但支持的還不是很完整,不過現(xiàn)階段PHP對面向?qū)ο缶幊陶Z言提供的支持不但有利于我們設計程序的結(jié)構,對于對程序的維護也能提供很大的幫助。