首頁(yè) 行業(yè) 活動(dòng) 項(xiàng)目 快訊 文娛 時(shí)尚 娛樂(lè) 科技 汽車(chē) 綜合 生活

PHP面向?qū)ο?訪問(wèn)控制|微資訊

2023-04-28 17:50:11 來(lái)源:騰訊云


(資料圖)

public訪問(wèn)控制

public訪問(wèn)控制是最常用的一種,它表示對(duì)象屬性和方法可以在任何地方訪問(wèn),包括類(lèi)的外部。例如:

phpCopy codeclass Person {    public $name;    public function greet() {        echo "Hello, my name is " . $this->name;    }}$person = new Person();$person->name = "John";$person->greet(); // 輸出 "Hello, my name is John"

在上面的示例中,$name屬性和greet()方法都被聲明為public,因此可以從類(lèi)的外部訪問(wèn)。在創(chuàng)建新的Person對(duì)象后,可以使用$person->name屬性設(shè)置$name屬性的值,并調(diào)用$person->greet()方法輸出相應(yīng)的消息。

private訪問(wèn)控制

private訪問(wèn)控制表示對(duì)象屬性和方法只能在類(lèi)內(nèi)部訪問(wèn)。這意味著,在類(lèi)的外部無(wú)法直接訪問(wèn)或修改私有屬性或方法。例如:

class Person {    private $name;    public function setName($name) {        $this->name = $name;    }    public function greet() {        echo "Hello, my name is " . $this->name;    }}$person = new Person();$person->setName("John"); // 正確$person->greet(); // 報(bào)錯(cuò),因?yàn)?name是私有屬性,無(wú)法從外部訪問(wèn)

在上面的示例中,$name屬性被聲明為private,因此無(wú)法從類(lèi)的外部直接訪問(wèn)。相反,可以通過(guò)一個(gè)名為setName()的public方法來(lái)設(shè)置$name屬性的值,并通過(guò)$person->greet()方法輸出相應(yīng)的消息。

protected訪問(wèn)控制

protected訪問(wèn)控制表示對(duì)象屬性和方法只能在類(lèi)內(nèi)部和其子類(lèi)中訪問(wèn)。這意味著,類(lèi)的外部無(wú)法直接訪問(wèn)或修改受保護(hù)的屬性或方法。例如:

class Person {    protected $name;    public function setName($name) {        $this->name = $name;    }}class Employee extends Person {    public function greet() {        echo "Hello, my name is " . $this->name;    }}$employee = new Employee();$employee->setName("John"); // 正確$employee->greet(); // 輸出 "Hello, my name is John"

在上面的示例中,$name屬性被聲明為protected,因此無(wú)法從類(lèi)的外部直接訪問(wèn)。相反,可以通過(guò)一個(gè)名為setName()的public方法來(lái)設(shè)置$name屬性的值,并通過(guò)Employee類(lèi)中的greet()方法輸出相應(yīng)的消息。由于Employee類(lèi)是Person類(lèi)的子類(lèi),因此可以在子類(lèi)中訪問(wèn)protected屬性。

關(guān)鍵詞:

上一篇:上市后首份年報(bào)“鬧烏龍”,近岸蛋白2022年財(cái)報(bào)錯(cuò)漏百出_資訊

下一篇:世界聚焦:耳返是干什么用的_耳返是什么

責(zé)任編輯:

最近更新

點(diǎn)擊排行
推薦閱讀