PHP所提供的」重載」(overloading)是指動態地」建立」類別屬性和方法。我們是透過魔術方法(magic methods)來實現的。 當呼叫目前環境下未定義或不可存取的類別屬性或方法時,重載方法會被呼叫。 所有的重載方法都必須宣告為 public。
**note:**PHP中的」重載」與其它絕大多數物件導向語言不同。傳統的」重載」是用來提供多個同名的類別方法,但各方法的參數類型和個數不同。
public void __set ( string $name , mixed $value ) public mixed __get ( string $name ) public bool __isset ( string $name ) public void __unset ( string $name )
在給不可存取屬性賦值時,__set() 會被呼叫。
讀取不可存取屬性的值時,__get() 會被呼叫。
當對不可存取屬性呼叫 isset() 或 empty() 時,__isset() 會被呼叫。
當對不可存取屬性呼叫 unset() 時,__unset() 會被呼叫。
參數$name是指要操作的變數名稱。 __set() 方法的
name 變數的值。
屬性重載只能在物件中進行。在靜態方法中,這些魔術方法將不會被呼叫。所以這些方法都不能被 宣告為 static。從 PHP 5.3.0 起, 將這些魔術方法定義為 static 會產生一個警告。
public mixed __call ( string $name , array $arguments ) public static mixed __callStatic ( string $name , array $arguments )
在物件中呼叫一個不可存取方法時,__call() 會被呼叫。
在靜態上下文中呼叫一個不可存取方法時,__callStatic() 會被呼叫。
arguments 參數是一個列舉數組,包含要傳遞給方法 $name 的參數。
PHP所提供的」重載」(overloading)是指動態地」建立」類別屬性與方法。我們是透過魔術方法(magic methods)來實現的。
當呼叫目前環境下未定義或不可存取的類別屬性或方法時,重載方法會被呼叫。
所有的重載方法都必須宣告為 public。
**note:**PHP中的」重載」與其它絕大多數物件導向語言不同。傳統的」重載」是用來提供多個同名的類別方法,但各方法的參數類型和個數不同。
相關推薦:
以上是PHP的重載介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!