當前位置:文思屋>社會工作>電腦培訓>

PHP中關於類的定義

文思屋 人氣:2.49W

在闡述類的概念之前我們來先說說物件導向程式設計的概念:物件導向的程式設計(Object-OrientedProgramming,簡記為OOP)立意於建立軟體重用程式碼,具備更好地模擬現實世界環境的能力,這使它被公認為是自上而下程式設計的優勝者。它通過給程式中加入擴充套件語句,把函式“封裝”進程式設計所必需的“物件”中。物件導向的程式語言使得複雜的工作條理清晰、編寫容易。說它是一場革命,不是對物件本身而言,而是對它們處理工作的能力而言。物件並不與傳統程式設計和程式設計方法相容,只是部分物件導向反而會使情形更糟。除非整個開發環境都是物件導向的,否則物件產生的好處還沒有帶來的麻煩多。有人可能會說PHP不是一個真正的物件導向程式設計的語言,PHP是一個混合型語言,你可以使用物件導向程式設計,也可以使用傳統的過程化程式設計。然而,對於大型專案的開發,你可能想需要在PHP中使用純的物件導向程式設計去宣告類,而且在你的專案開發只用物件和類。隨著專案越來越大,使用物件導向程式設計可能會有幫助,物件導向程式設計程式碼很容易維護,容易理解和重複使用,這些就是軟體工程的.基礎。在基於Web的專案中應用這些概念就成為將來網站成功的關鍵。

PHP中關於類的定義

物件(Object)是問題域或實現域中某些事物的一個抽象,它反映此事物在系統中需要儲存的資訊和發揮的作用;它是一組屬性和有權對這些屬性進行操作的一組服務的封裝體。關於物件要從兩方面理解:一方面指系統所要處理的現實世界中的物件;另一方面物件是計算機不直接處理的物件,而是處理相應的計算機表示,這種計算機表示也稱為物件。簡單的來說,一個人就是一個物件,一個尺子也可以說是個物件。當這些物件可以用資料直接表示時,我們就稱他為屬性,尺子的度量單位可以是釐米,公尺或英尺,這個度量單位就是尺子的屬性。

在PHP裡我們可以定義一個類,類(Class)就是指變數與一些使用這些變數的函式的集合。PHP是一種鬆散型別的語言,所以通過型別過載不起作用,通過引數的個數不同來過載也不起作用。有時在面向中過載建構函式非常好,這樣你可以通過不同的方法建立物件(傳遞不同數量的引數)。在PHP中就是通過類來實現的。

在PHP中是通過類來完成資訊封裝的,在PHP中定義類的語法是:

複製程式碼 程式碼如下:<?php

classClass_name//在物件導向程式設計類中,習慣上類的第一個字元為大寫,並且必須符合變數的命名規則

{

//函式與變數的集合

}

?>

在定義類時你可以按自已的喜好的格式進行定義,但最好能保持一種標準,這樣開發起來會更有效些。

資料成員在類中使用"var"宣告來定義,在給資料成員賦值之前,它們是沒有型別的。一個數據成員可以是一個整數,一個數組,一個相關陣列(AssociativeArray)或者是一個物件。

下面是一個類定義的實際例子:

複製程式碼 程式碼如下:<?php

classStudent

{

var$str_Name;//姓名

var$str_Sex;//性別

var$int_Id;//學號

var$int_English;//英語成績

var$int_maths;//數學成績

}

?>

這是一個很普通定義類的簡單例子,用於顯示學生的學習成績,類名為Student,Student類包涵了一個學生的基本屬性:姓名、性別、學號、英語成績和數學成績。

function我們稱之為在類中被定義的函式,在函式中訪問類成員變數時,你應該使用$this->var_name,其中var_name指的是類中被宣告的變數,否則對一個函式來說,它只能是區域性變數。我們先定義一個Input()的函式,用來給例項中的物件賦以初值:

複製程式碼 程式碼如下: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;

}現在我們再定義一個叫“ShowInfo()”的函式,用於列印學生的基本情況:

複製程式碼 程式碼如下:functionShowInfo()//定義ShowInfo()函式

{

echo(“姓名:$this->str_Name

”);

echo(“性別:$this->str_Sex

”);

echo(“學號:$this->int_Id

”);

echo(“英語成績:$this->int_English

”);

echo(“數學成績:$this->int_Maths

”);

}

而定義好的類則必須使用new關鍵詞來生成物件:

$A_student=newStudent;

例如我們要為一個名為$Wing的物件建立例項,並進行賦值,可以使用下面的程式碼:

$Wing=newStudent;//用new關鍵詞來生成物件

$Wing->Input(“Wing”,”男”,33,95,87);

//分別輸入Wing的姓名、性別、學號、英語成績、數學成績,其中姓名和性別是字元型變數,所以需要用雙引號,其它為數值型變數則不需要。

通過下面這段完整的原始碼,我們就可以很清楚的看到類在PHP是怎麼被運用的:

複製程式碼 程式碼如下:<?php

classStudent

{

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;

}

functionShowInfo()

{

echo(“姓名:$this->str_Name

”);

echo(“性別:$this->str_Sex

”);

echo(“學號:$this->int_Id

”);

echo(“英語成績:$this->int_English

”);

echo(“數學成績:$this->int_Maths

”);

}

}

$Wing=newStudent;

$Wing->Input(“Wing”,”男”,33,95,87);

$Paladin=newStudent;

$Paladin->Input(“paladin”,”女”,38,58,59.5);

$Wing->ShowInfo();

$Paladin->ShowInfo();

?>執行結果應是這樣的:

姓名:Wing

性別:男

學號:33

英語成績:95

數學成績:87

姓名:Paladin

性別:女

學號:38

英語成績:58

數學成績:59.5

PHP現有的版本較以前的版本在對物件導向程式設計的支援方面有了很大的改善,但支援的還不是很完整,不過現階段PHP對物件導向程式語言提供的支援不但有利於我們設計程式的結構,對於對程式的維護也能提供很大的幫助。

TAGS:PHP