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