首頁  >  文章  >  後端開發  >  PHP的重載介紹

PHP的重載介紹

小云云
小云云原創
2018-03-20 13:46:101768瀏覽

PHP所提供的」重載」(overloading)是指動態地」建立」類別屬性和方法。我們是透過魔術方法(magic methods)來實現的。 當呼叫目前環境下未定義或不可存取的類別屬性或方法時,重載方法會被呼叫。  所有的重載方法都必須宣告為 public。 

**note:**PHP中的」重載」與其它絕大多數物件導向語言不同。傳統的」重載」是用來提供多個同名的類別方法,但各方法的參數類型和個數不同。

1.屬性重載

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 會產生一個警告。

2.方法重載

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教學

#php重載陣列運算子

php繼承中方法重載(覆寫)的應用場合,php重載

以上是PHP的重載介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn