溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP中與類名相同的方法是哪個(gè)

發(fā)布時(shí)間:2021-06-07 13:40:36 來源:億速云 閱讀:218 作者:小新 欄目:編程語言

這篇文章主要介紹了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í)!

向AI問一下細(xì)節(jié)

免責(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)容。

php
AI