這篇文章主要介紹了PHP中與類名相同的方法是哪個,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
在PHP中,類名與方法名可以相同,如果方法名和類名相同,且沒有“__construct”,那么該方法會被當做構造函數。php構造函數是類中的一個特殊函數,當使用new操作符創建一個類的實例時,構造函數將會自動調用。
本教程操作環境:windows7系統、PHP7.1版,DELL G3電腦
構造函數
__construct ( mixed ...$values = "" ) : void
PHP 允許開發者在一個類中定義一個方法作為構造函數。具有構造函數的類會在每次創建新對象時先調用此方法,所以非常適合在使用對象之前做一些初始化工作。
注意: 如果子類中定義了構造函數則不會隱式調用其父類的構造函數。要執行父類的構造函數,需要在子類的構造函數中調用 parent::__construct()。如果子類沒有定義構造函數則會如同一個普通的類方法一樣從父類繼承(假如沒有被定義為 private 的話)。
示例 #1 繼承中的構造函數
<?php class BaseClass { function __construct() { print "In BaseClass constructor\n"; } } class SubClass extends BaseClass { function __construct() { parent::__construct(); print "In SubClass constructor\n"; } } class OtherSubClass extends BaseClass { // 繼承 BaseClass 的構造函數 } // In BaseClass constructor $obj = new BaseClass(); // In BaseClass constructor // In SubClass constructor $obj = new SubClass(); // In BaseClass constructor $obj = new OtherSubClass(); ?>
與其它方法不同,當 __construct() 被與父類 __construct() 具有不同參數的方法覆蓋時,PHP 不會產生一個 E_STRICT 錯誤信息。
自 PHP 5.3.3 起,在命名空間中,與類名同名的方法不再作為構造函數。不使用命名空間中的類則不受影響。 構造函數是一個普通的方法,在對應對象實例化時自動被調用。 因此可以定義任何數量的參數,可以是必選、可以有類型、可以有默認值。 構造器的參數放在類名后的括號里調用。
示例 #2 使用構造器參數
<?php class Point { protected int $x; protected int $y; public function __construct(int $x, int $y = 0) { $this->x = $x; $this->y = $y; } } // 兩個參數都傳入 $p1 = new Point(4, 5); // 僅傳入必填的參數。 $y 會默認取值 0。 $p2 = new Point(4); // 使用命名參數(PHP 8.0 起): $p3 = new Point(y: 5, x: 4); ?>
感謝你能夠認真閱讀完這篇文章,希望小編分享的“PHP中與類名相同的方法是哪個”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。