首頁 >後端開發 >php教程 >PHP中public關鍵字的用法與範例

PHP中public關鍵字的用法與範例

WBOY
WBOY原創
2023-06-28 20:38:151642瀏覽

PHP中public關鍵字是物件導向程式設計中的一種存取修飾符。它用於表示成員(屬性和方法)是公共的,可以被該類別的任何地方存取。本篇文章將介紹PHP中public關鍵字的用法與範例。

  1. 屬性的public修飾

在PHP中,我們可以使用public關鍵字來修飾類別的屬性,使其可以被類別的任何地方存取。例如,我們定義一個Person類,並使用public關鍵字修飾其屬性$name:

class Person {
    public $name;
    
    public function __construct($name) {
        $this->name = $name;
    }
    
    public function greet() {
        echo "Hello, my name is " . $this->name;
    }
}

$person = new Person("John");
$person->name = "Mike";  // 修改属性值
echo $person->name;  // 访问属性值

在上述的例子中,我們可以直接存取和修改$person物件的$name屬性,因為它被public關鍵字修飾。透過呼叫$person->greet()方法,我們可以輸出"Hello, my name is Mike"。

  1. 方法的public修飾

除了屬性外,我們還可以使用public關鍵字來修飾類別的方法。被public修飾的方法可以被類別的外部程式碼直接呼叫。例如,我們繼續使用上述的Person類,並且加入一個public修飾的sayHello方法:

class Person {
    public $name;
    
    // 构造方法
    
    // 属性$name
    
    public function greet() {
        echo "Hello, my name is " . $this->name;
    }
    
    public function sayHello($to) {
        echo "Hello, " . $to;
    }
}

$person = new Person("John");
$person->sayHello("Mike");  // 调用public方法

在上述的例子中,我們可以透過$person->sayHello("Mike")來呼叫Person類中public修飾的sayHello方法,並輸出"Hello, Mike"。

  1. public修飾符的繼承

當一個類別繼承另一個類別時,被繼承的屬性和方法的存取修飾符跟隨繼承。如果被繼承的屬性或方法是public修飾的,那麼它們在子類別中也是public修飾的。例如,我們定義一個Student類別繼承自Person類別:

class Student extends Person {
    public $grade;
    
    public function study() {
        echo "I am studying in grade " . $this->grade;
    }
}

$student = new Student("Alice");
$student->name = "Bob";  // 从父类继承的public属性
echo $student->name;  // 从父类继承的public属性
$student->study();  // 调用从父类继承的public方法

在上述的例子中,Student類別繼承了Person類,可以直接存取和修改從父類別繼承的public屬性$name,並且呼叫從父類別繼承的public方法greet。

總結:

在PHP中,public關鍵字用來定義類別的屬性和方法的存取權限為公共的,可以被類別的任何地方存取。被public修飾的屬性和方法可以在類別的內部和外部程式碼中直接呼叫和修改。另外,public修飾符的繼承機制使得子類別可以繼承並使用父類別中的public屬性和方法。透過合理使用public關鍵字,我們可以更好地封裝程式碼並提高程式碼的可維護性和可重複使用性。

以上就是PHP中public關鍵字的用法和範例的相關內容,希望能對讀者理解和應用public關鍵字有所幫助。

以上是PHP中public關鍵字的用法與範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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