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