PHP物件導向學習筆記之一 基礎概念

2021-06-02 16:20:33 字數 2784 閱讀 3607

1> if( "false" ) 等效於 if( true), 因為非空字串是true

2> 檢查資料型別:

is_array();

is_object();

is_string();

is_null();

is_integer();

3> php5 引入類的型別提示(type hint),用來約束乙個方法的引數型別(不是基本資料型別,而是類):將類名放在需要約束的方法引數之前.

例如: function write( shopproduct $shopproduct){}

4> instanceof 操作符: 如果左邊運算元的物件是右邊運算元所示的型別,結果為true

例如: if( $shopproduct instanceof bookproduct

) {}

5> 繼承   class son extends parent{}

要呼叫父類的方法, 比如建構函式,用 parent::__construct();

6> 靜態方法和屬性

class staticexample }

外部訪問使用::

例如: print staticexample::$a;

內部訪問使用self::

例如: self::$a;

7> 抽象類, 抽象方法

abstract class *** }

抽象類的子類要重新宣告方法並實現之. 新實現的方法的訪問控制不能比抽象方法的訪問控制更嚴格.

8>介面 inte***ce

只定義功能,不包含實現. 介面中可以包含屬性和方法宣告,但方法體為空;

例如:  inte***ce a

任何實現介面的類都要實現介面中定義的所有方法,否則就必須是抽象類.

類在宣告中使用implements來實現某個介面.

class shop implements a }

9> 異常 exception

php5引入異常類 

10>*** interceptor

__get($property); 訪問未定義的屬性時被呼叫

__set($property,$value); 給未定義的屬性賦值時被呼叫

__isset($property); 對未定義的屬性使用isset()時被呼叫;

__unset($property);對未定義的屬性呼叫unset()時被呼叫;

__call($method, $arg_array); 呼叫未定義的方法時候被呼叫

例: __get()的實現

function __get($property)";

if(method_exists($this,$method)) }

function getname()

function __isset($property)";

return(method_exists($this, $method)); }

function __set($property, $value)";

if( method_exists($this,$method)) }

11> 析構方法 __destruct()

12> __clone(); 與clone關鍵字的區別

class copyme();

$first= new copyme();

$second=$first;

// php4 : $first和$second是兩個完全不同的物件;

// php5: $first和$second指向同乙個物件

php5中, 物件的賦值和傳遞都是引用.

如果要拷貝,就要用: $second= clone $first;  //現在$first和$second是兩個完全不同的物件,(by_value copy)

如果要想控制複製, 要通過實現乙個特殊方法__clone()

13> 自動載入: __autoload()

php5引入__autoload()***方法來自動包含類檔案.當php遇到試圖例項化乙個未知類的操作時,會嘗試呼叫__autoload()方法,並將類名當作字串引數傳遞給它.

例如乙個很簡單的自動定位和包含策略:

function __autoload( $classname)

********************

14>使用字串動態引用類

$classname="task";

require_once("tasks/.php);

$myobj= new $classname();

$method="gettitle";

$myobj->$method();  //動態方法

15>類函式和物件函式

class_exist();  //檢查類是否存在

get_declared_classes(); //獲得當前指令碼程序中定義的所有類(array形式返回)

get_class_methods();//類中所有的public方法列表(array)

method_exist($objname,$method); //物件或類的方法是否存在

is_callable();//物件或類的方法不僅存在,且能訪問

get_class_vars(); // 屬性

get_parent_class(類或物件名稱); //父類

is_subclass_of(); //是否子類,不管介面,介面用 instanceof操作符

16>反射api

由一系列可以分析屬性、方法、類和引數的內建類構成,可以動態獲取資訊,動態呼叫方法.

php物件導向之一

面向過程 以事件為中心,分幾個步驟去完成。不可擴充套件,html與php不分離 物件導向 自己作為指揮者,指揮別人去做。具有可擴充套件性,html和php 分離 物件 自然間形形色色存在的可以看得見的東西 其實這個也不會很準確 在 中表現為 由 執行出來的效果 軟體工程的三個目標 1.重用性 2.靈...

物件導向基礎之一

記錄一些基礎知識,以備後查。1.類與例項 物件是乙個自包含的實體,用一組可識別的特性和行為來標識。object oriented programming。類就是具有相同的屬性和功能的物件的抽象的集合。class是表示定義類的關鍵字。第一,類名稱首字母要大寫。第二,對外公開的方法需要用public修飾...

PHP物件導向 特徵之一 繼承

header content type text html charset utf 8 classzixingche public functionshache public functionjieshao 繼承 擴充套件父類的內容,注意只能繼承public和protected修飾的內容,而priv...