PHP物件導向1 過載overloading

2021-08-02 07:43:37 字數 1164 閱讀 5281

__set(),__get(),__isset(),__unset()四個方法,分別用於賦值,取值,判斷是否賦值,釋放。

賦值時,如果屬性不存在,則自動呼叫該方法。

private

$data = array();

function

__set

($name, $value)

取值時,如果屬性不存在,則自動呼叫該方法。

private

$data = array();

function

__get

($name)

$trace = debug_backtrace();

trigger_error(

'undefined property via __get(): ' . $name .

' in ' . $trace[0]['file'] .

' on line ' . $trace[0]['line'],

e_user_notice);

return

null;

}

判斷屬性是否存在時,如果屬性不存在,則自動呼叫該方法。

private

$data = array();

function

__isset

($name)

釋放屬性時,如果屬性不存在,則自動呼叫該方法。

private

$data = array();

function

__unset

($name)

__call(),__callstatic()總共2個方法,分別會在物件中呼叫不可訪問方法時或在靜態上下文中呼叫不可訪問方法時被呼叫。

在物件中呼叫乙個不可訪問方法時,__call() 會被呼叫。

function

__call

($name, $arguments)

在靜態上下文中呼叫乙個不可訪問方法時,__callstatic() 會被呼叫。

function

__callstatic

($name, $arguments)

php物件導向 07過載

1 動態地 建立 類的屬性和方法。2 通過魔術方法實現。3 當呼叫當前環境下未定義或不可見的類的屬性或方法時,過載方法會被呼叫。set 賦值 get 讀取 isset 判斷是否存在 unset 銷毀 例子 屬性的過載 class person else public function set n,v...

PHP學習筆記3 過載

方法過載 使用魔術方法 描述 讀取不可訪問屬性的值時,get 會被呼叫。語法 public mixed get string name 例子 class student 建立學生類物件 obj new student 訪問私有屬性 echo 的年齡是 歲。描述 再給不可訪問屬性賦值時,set 會被呼...

1 過載和重寫的區別

1 所處位置不同 過載在同類中 重寫在父子類中 2 定義方式不同 過載方法名相同 引數列表不同 重寫方法名和引數列表都相同 3 呼叫方式不同 過載使用相同物件以不同引數呼叫 重寫用不同物件以相同引數呼叫 4 多型時機不同 過載時編譯時多型 重寫是執行時多型 過載 class overloadtest...