1)動態地「建立」類的屬性和方法。
2)通過魔術方法實現。
3)當呼叫當前環境下未定義或不可見的類的屬性或方法時,過載方法會被呼叫。
__set 賦值
__get 讀取
__isset 判斷是否存在
__unset 銷毀
例子
// 屬性的過載
class person
else
}public function __set($n,$v)
public function __isset($n)
public function __unset($n)
}$p1 = new person();
// 讀取
//echo $p1 -> age,'
';//echo $p1 -> ***,'
';// 設定
//$p1 -> age = 30;
//echo $p1 -> age,'
';// 判斷存在與否
isset($p1 -> age);
// 銷毀
unset($p1 -> age);
__call 呼叫不可訪問的普通方法
__callstatic 呼叫不可訪問的靜態方法
特別注意,__callstatic定義時,要定義成靜態方法。
例子
<?php
class myclass
protected static function fun2()
public function __call($function_name,$args)
public static function __callstatic($function_name,$args)
} // 例項化
$c1 = new myclass();
$c1 -> func([1,2,3]);
$c1 -> func2([1,2,3]);
PHP物件導向1 過載overloading
set get isset unset 四個方法,分別用於賦值,取值,判斷是否賦值,釋放。賦值時,如果屬性不存在,則自動呼叫該方法。private data array function set name,value 取值時,如果屬性不存在,則自動呼叫該方法。private data array f...
PHP學習筆記3 過載
方法過載 使用魔術方法 描述 讀取不可訪問屬性的值時,get 會被呼叫。語法 public mixed get string name 例子 class student 建立學生類物件 obj new student 訪問私有屬性 echo 的年齡是 歲。描述 再給不可訪問屬性賦值時,set 會被呼...
索引器(2)過載
看了 陳廣老師的索引器挺不錯的 學習了class coursescore public string name set public int courseid set public int score set class coursescoreindexer public int this stri...