在PHP中,類別(Class)是變數與作用於這些變數的函數的集合,是具有相同屬性和運算的一組物件的集合。它為屬於該類別的所有物件提供了統一的抽象描述,其內部包括屬性和操作兩個主要部分。
PHP是一種鬆散類型的語言,所以透過型別重載不起作用,透過參數的數量不同來重載也不起作用。有時在面向中重載建構函數非常好,這樣你可以透過不同的方法建立物件(傳遞不同數量的參數)。在PHP中就是透過類別來實現的。
在PHP中是透過類別來完成資訊封裝的,在PHP中定義類別的語法是:
<?php class Class_name // 在面向对象编程类中,习惯上类的第一个字符为大写,并且必须符合变量的命名规则。 { //函数与变量的集合 } ?>
在定義類別時你可以按自已的喜好的格式進行定義,但最好能維持一種標準,這樣開發起來會更有效些。
資料成員在類別中使用"var"宣告來定義,在給資料成員賦值之前,它們是沒有類型的。一個資料成員可以是一個整數,一個數組,一個相關數組(Associative Array)或者是一個物件。
下面是一個類別定義的實際例子:
<?php class Student { var $str_Name; //姓名 var $str_Sex; //性别 var $int_Id; //学号 var $int_English; //英语成绩 var $int_maths; //数学成绩 } ?>
這是一個很普通定義類別的簡單例子,用於顯示學生的學習成績,類別名為Student,Student類別包涵了一個學生的基本屬性:姓名、性別、學號、英文成績和數學成績。
function我們稱為在類別中被定義的函數,在函數中存取類別成員變數時,你應該使用$this->var_name,其中var_name指的是類別中被宣告的變量,否則對一個函數來說,它只能是局部變數。我們先定義一個Input()的函數,用來給實例中的物件賦以初值:
function Input ( $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()」的函數,用來列印學生的基本情況:
function ShowInfo() //定义ShowInfo()函数 { echo (“姓名:$this->str_Name<br> ”); echo (“性别:$this->str_Sex <br> ”); echo (“学号:$this->int_Id <br> ”); echo (“英语成绩:$this->int_English <br> ”); echo (“数学成绩:$this->int_Maths <br> ”); }
而定義好的類別則必須使用new關鍵字來產生物件:
$A_student=new Student;
例如我們要為一個名為$Wing的物件建立實例,並且進行賦值,可以使用下面的程式碼:
$Wing =new Student; //用new关键词来生成对象 $Wing ->Input (“Wing”,”男”,33,95,87); //分别输入Wing的姓名、性别、学号、英语成绩、数学成绩,其中姓名和性别是字符型变量,所以需要用双引号,其它为数值型变量则不需要。
透過下面這段完整的原始碼,我們就可以很清楚的看到類別在PHP是怎麼被運用的:
<?php class Student { var $str_Name; var $str_Sex; var $int_Id; var $int_English; var $int_maths; function Input ( $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 (“数学成绩:$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(); ?>
執行結果應是這樣的:
姓名:Wing 性别:男 学号:33 英语成绩:95 数学成绩:87 姓名:Paladin 性别:女 学号:38 英语成绩:58 数学成绩:59.5
PHP現有的版本較以前的版本在對物件導向程式設計的支援方面有了很大的改善,但支援的還不是很完整,不過現階段PHP對物件導向程式語言提供的支援不但有利於我們設計程式的結構,對於程式的維護也能提供很大的幫助。
更多PHP相關知識,請造訪php中文網!
以上是php中的類別是什麼意思?的詳細內容。更多資訊請關注PHP中文網其他相關文章!