php學習筆記

2021-07-30 21:35:04 字數 4132 閱讀 4162

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...