php
物件導向的程式程式設計
1.宣告乙個類
在php
中使用class
關鍵字建立乙個新類,類包括屬性與方法。語法格式如下:
[php]
view plain
copy
<?php
class
類名
?>
2.建立乙個例項物件
建立物件的過程稱為例項化,物件被建立時就包含3
個特性:物件控制代碼,物件屬性,物件方法;
物件控制代碼:用於區分不同的物件。物件建立好了就會獲取一塊儲存空間,儲存空間的位址即為物件的標識,也就是物件的控制代碼。
物件屬性:用於描述物件的靜態特徵。
物件方法:用於描述物件的動態特徵。
如果要建立乙個新的且唯一的物件,可使用'&'
引用符號。例如:
[php]
view plain
copy
<?php
$物件名稱 = new
&類名稱();
?>
當類例項化後,可以使用操作符'->'
來呼叫對該物件的屬性和方法。
3.類的屬性與方法
屬性的宣告:關鍵字
成員變數名;
關鍵字可以是public,private,protected,static
中的任意乙個,預設是public。
4.類的常量
常量使用const
關鍵字來定義乙個類的常量。類常量不與這個類的任何特定例項相關聯,所以不可以使用間接引用操作符來訪問它們。類常量通常要大寫,如果多個類常量由多個單詞組成,建議使用下劃線將它們分開。
5.類的構造方法和析構方法
構造方法:乙個類中只能有乙個構造方法,構造方法不會被呼叫,只有在使用new
關鍵字建立物件的時候才會呼叫構造方法。
例如:
[php]
view plain
copy
<?php
class
類名
} ?>
在工作中,也可以呼叫和例項化物件沒有任何關係的類建構函式,只須在__construct
前面加上類名,例如:類名::__construcr();
析構方法:析構方法與構造方法是相對的,它在某個物件中的所有引用都被刪除或物件被顯式銷毀時執行。
例如:
[php]
view plain
copy
<?php
class
類名
} ?>
指令碼執行結束時,php
會撤銷記憶體中的所有物件,因此,如果例項化的類和例項時建立的資訊都留在記憶體中,就不需要顯示地宣告析構函式。但是,如果例項化時建立了不容易丟失的資料,就應該在物件撤銷時撤銷這些資料,因此就需要定製析構函式。
6.靜態屬性與方法
將類中的屬性與方法宣告為靜態的就叫做靜態方法。靜態方法不受任何具體物件的限制,所以不需要建立例項就可以直接引用類中的靜態方法。
呼叫方式:類名稱::
靜態方法名稱
注釋:'::'
符號稱為範圍解析操作符,它可以用於訪問靜態成員,靜態方法和常量,還可以用於覆蓋類中的成員和方法。例如:
[php]
view plain
copy
<?php
class
sta_num
sta_num::$num
++;
?>
如果想在同一類的成員方法中訪問靜態屬性,可以通過在該靜態屬性的名稱前加上操作符'self::'
來實現。
例如:
[php]
view plain
copy
<?php
class
sta_num
} sta_num::$num
++;
?>
7.物件的轉殖
通過clone
後可以得到的物件與原來的物件沒有任何關係,它把原來物件的所有資訊從內尋的位置中複製了乙份,然後在記憶體中又開闢乙個空間來儲存轉殖後的物件。例如:
[php]
view plain
copy
<?php
calss a{}
$ojecta
= new
a();
$objectb
= clone
$objecta
; ?>
如果在物件中定義了_clone
方法,則可以在物件被轉殖時來調整轉殖行為,此方法的**將在轉殖的操作期間來執行。
8.繼承
在php
中,使用extends
關鍵字來建立乙個類的繼承。格式如下:
[php]
view plain
copy
class
子類名稱
extends
父類名稱
當子類要呼叫父類的成員方法時需要用到關鍵字'patent::',
例如:
parent::
父類的成員方法
9.檢測物件的型別
在php
中可以使用instanceof
運算子來檢測當前物件是否屬於同乙個類。
10.多型
(1)通過繼承抽象類實現多型
抽象類裡面至少包含乙個由關鍵字abstract
修飾的抽象方法,抽象方法是不實現具體方法的空方法。抽象類不能被例項化,只能由子類去繼承,然後在繼承的子類中完成具體功能。
例如:
[php]
view plain
copy
<?php
abstract
class
work
class
man
extends
work
} class
woman
extends
work
} ?>
對於work
類而言man
,woman
就是它多型的表現。
(2)通過介面實現多型
介面是一組成員方法宣告的集合,它只包含一些空的成員方法或常量,這些空的成員方法將由實現該介面的類去實現。定義乙個介面需要使用inte***ce
宣告,定義介面的方法如下:
[php]
view plain
copy
inte***ce
介面名稱
在介面中不存在構造方法和析構方法,介面可以被繼承,它可以繼承多個介面,而不能繼承乙個類。介面的實現需要使用關鍵字
implements
。當使用類來實現介面時,必須包含介面定義的所有方法,否則在執行時會出現錯誤。例如:
[php]
view plain
copy
<?php
inte***ce
people
class
children
implements
people
} class
student
implements
people
} ?>
對於介面people
而言,類children
和student
就是其多型的表現。
[php]
view plain
copy
"code"class
="php"
>"code"
class
="php"
>class
="cjk"
align=
"left"
style=
"margin-bottom:0cm"
>
"stylesheet"
href=
"">
PHP學習 PHP學習筆記 3
php 學習筆記 3 8 php 預定義常量 9 php 類 示例 var1 33 var2 44 if語句if var1 var2 echo if.else語句if var1 var2 else echo if.elseif.else語句if var1 var2 elseif var1 var2 ...
PHP學習筆記
globals是乙個儲存所有超級全域性變數的陣列,而global是乙個關鍵字,主要用在函式中宣告乙個變數為全域性變數,也可以使用 globals陣列來儲存全域性變數。變數的定義檢查 格式 isset var 取消變數定義 格式 unset var 數值轉換函式 chr 根據 var的值返回相對應的a...
php學習筆記
1 server script name server php self 和 server request uri 區別 例子 http localhost phpwind75 test.php 22 3e 3cscript 3ealert xss 3c script 3e 3cfoo server...