2023-06-28

PHP中public关键字的用法和示例

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中文网其它相关文章!

https://www.php.cn/faq/568530.html

发表回复

Your email address will not be published. Required fields are marked *