PHP物件導向學習筆記

2021-06-28 15:03:56 字數 2595 閱讀 2388

學習基於《細說php》

類宣告 class 類名

類成員屬性

class person

成員方法

class person

}例項化物件

$person=new person();

訪問$引用名->成員屬性/成員方法(非靜態)

物件成員方法引用成員屬性用"$this"

class person

}構造方法與析構方法

構造方法:

function __construct([引數列表]){……}

析構方法:

function __destruct()

class person

function __destruct()}封裝

class person

public function getname()

public function setage($age)

public function getage()

}如果成員屬性太多,用__set()

void __set(string name,mixed value)

class person

}else if($propertyname=="age")

$this->$propertyname=$propertyvalue;}}

關於__get()

mixed __get(string name)

class person

}測定變數是否存在

bool __isset(string name)    //傳入物件中的成員屬性名作為引數,返回測定後的結果

void __unset(string name)    //傳入物件中的成員屬性名作為引數,可以將私有成員屬性刪除

class person

private function __unset($propertyname)}繼承

extends

class person

}class student

}訪問型別控制

public

沒有限制,不加修飾的函式或者var的變數都是public

private

內部使用

protected

子類或子類的子類可以使用

過載直接覆蓋

注意:在子類中重寫父類的方法時,一定要高於父類被覆蓋的方法的訪問許可權

final

加在類或類中方法前,不能標識成員屬性

作用:類前,表示類不能被繼承

類中方法前,不能被覆蓋

static

static成員唯一,只有乙個,無論有多少個類

static不能用this

外部:類名::靜態成員屬性名;

類名::靜態成員方法名();

類內:self::靜態成員屬性名;

self::靜態成員方法名();

單態設計模式:

乙個類只有乙個例項:

class f

static function getinstance()

return self::$obj;}}

$f=f::getinstance();

……const

類中定義常量只能使用const

不加$符號

用self為訪問

class m

}echo m::c;

……instanceof關鍵字

使用這個關鍵字可以確定乙個物件是類的例項、類的子類,還是實現了某個特定介面,並進行相應的操作

$man=new person();

if($man instanceof person)

轉殖物件

使用clone

$p2=clone $p1;

如果要對成員變數重新賦初值,則在類中使用魔法方法 __clone()

類中通用方法__tostring()

class b

}$b=new b();

echo $b;

嘗試呼叫不存在方法時會出錯,退出程式,有__call()時會呼叫此函式,程式繼續執行

class b

}自動載入類

把類都分為單獨的檔案,當不知是否要使用類時可用此方法

function __autoload($classname)

物件序列化

序列化就是把整個物件轉化為二進位制字串,serialize()

使用情況:

網路傳輸

儲存在檔案或資料庫

反序列化:unserialize()

序列化時自動呼叫魔術方法sleep()

反序列化時自動呼叫魔術方法wakeup()

抽象類abstract class a{}

抽象方法

abstract function func(){}

php單繼承,因此使用接**術

inte***ce 介面名稱

interaface one

介面實現:

class 類名 implements 介面一,介面二,……

繼承與實現:

class 類名 extends 父類名 implements 介面一,介面二,……

多型忽略

PHP學習筆記 物件導向

類的結構 class classname var attribute 新增屬性 function operation 宣告函式 建構函式 construct 析構函式 destruct 使用類的屬性 在乙個類中,可以訪問乙個特殊的指標 this。eg this attribute。在類的外部直接訪問...

php學習筆記 物件導向

解決名字衝突,增強可讀性 不能定義任何語句 namespace space1 function fn namespace space2 function fn namespace foo 解析為當前namespace foo namespace space subspace foo 解析為 spac...

PHP物件導向學習筆記二

上篇文章我記錄了一下關於php封裝的知識,這篇文章我就記錄一下關於php繼承的知識吧。php中的繼承和嚴格意義上物件導向語言,比如 c 是大同小異的。php中類的繼承需要使用extends這個關鍵字 class child extends father 看,是不是很簡單,這樣child類就繼承了fa...