PHP中哪些访问控制符的具体用法和区别?

2026-04-06 09:421阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计663个文字,预计阅读时间需要3分钟。

PHP中哪些访问控制符的具体用法和区别?

PHP的访问控制符包括:

1.public:将属性或方法设置为可从任何地方访问;

2.private:将属性或方法设置为仅能从其自身类或子类访问;

PHP中哪些访问控制符的具体用法和区别?

3.protected:将属性或方法设置为可由其自身类、子类及同一包下的类访问。

php的访问控制符有:1、public,将属性或方法设置为可从任何地方访问;2、private,将属性或方法设置为只能由其自己的类或对象访问;3、protected,将属性或方法设置为可由其类或其后代访问。

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

访问控制修饰符列表

访问修饰符含义Public将属性或方法设置为可从任何地方访问Private将属性或方法设置为只能由其自己的类或对象访问Protected将属性或方法设置为可由其类或其后代访问

public

公共属性和方法可以从任何地方访问。

<?PHP class Book { public $Name; public function say() { print "PHP!\n"; } } class PythonBook extends Book { public function say() { print "Python!\n"; } } $aBook = new PythonBook; $aBook->Name = "Python"; print $aBook->Name; ?>

默认情况下,所有类方法都是public的。

上面的代码生成以下结果。

private

私有属性只能在自己的类中访问。

<?PHP class Book { private $Name; private $NameTag; public function setName($NewName) { // etc } } ?>

子类无法访问私有父方法和属性。如果你想这样做,你需要protected关键字。

Protected

受保护的属性和方法可在其自己的类和子类中访问。考虑下面的代码:

<?PHP class Book { public $Name; protected function getName() { return $this->Name; } } class Poodle extends Book { public function say() { print ""Book", says " . $this->getName(); } } $aBook = new Poodle; $aBook->Name = "PHP"; $aBook->say(); ?>

上面的代码生成以下结果。

例子

下面的代码显示了如何使用Private成员隐藏信息。

<?php class Widget { private $name; private $price; private $id; public function __construct($name, $price) { $this->name = $name; $this->price = floatval($price); $this->id = uniqid(); } //checks if two widgets are the same public function equals($widget) { return(($this->name == $widget->name) AND ($this->price == $widget->price)); } } $w1 = new Widget("Cog", 5.00); $w2 = new Widget("Cog", 5.00); $w3 = new Widget("Gear", 7.00); //TRUE if($w1->equals($w2)) { print("w1 and w2 are the same<br>\n"); } //FALSE if($w1->equals($w3)) { print("w1 and w3 are the same<br>\n"); } //FALSE, == includes id in comparison if($w1 == $w2) { print("w1 and w2 are the same<br>\n"); } ?>

上面的代码生成以下结果。

标签:访问控制

本文共计663个文字,预计阅读时间需要3分钟。

PHP中哪些访问控制符的具体用法和区别?

PHP的访问控制符包括:

1.public:将属性或方法设置为可从任何地方访问;

2.private:将属性或方法设置为仅能从其自身类或子类访问;

PHP中哪些访问控制符的具体用法和区别?

3.protected:将属性或方法设置为可由其自身类、子类及同一包下的类访问。

php的访问控制符有:1、public,将属性或方法设置为可从任何地方访问;2、private,将属性或方法设置为只能由其自己的类或对象访问;3、protected,将属性或方法设置为可由其类或其后代访问。

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

访问控制修饰符列表

访问修饰符含义Public将属性或方法设置为可从任何地方访问Private将属性或方法设置为只能由其自己的类或对象访问Protected将属性或方法设置为可由其类或其后代访问

public

公共属性和方法可以从任何地方访问。

<?PHP class Book { public $Name; public function say() { print "PHP!\n"; } } class PythonBook extends Book { public function say() { print "Python!\n"; } } $aBook = new PythonBook; $aBook->Name = "Python"; print $aBook->Name; ?>

默认情况下,所有类方法都是public的。

上面的代码生成以下结果。

private

私有属性只能在自己的类中访问。

<?PHP class Book { private $Name; private $NameTag; public function setName($NewName) { // etc } } ?>

子类无法访问私有父方法和属性。如果你想这样做,你需要protected关键字。

Protected

受保护的属性和方法可在其自己的类和子类中访问。考虑下面的代码:

<?PHP class Book { public $Name; protected function getName() { return $this->Name; } } class Poodle extends Book { public function say() { print ""Book", says " . $this->getName(); } } $aBook = new Poodle; $aBook->Name = "PHP"; $aBook->say(); ?>

上面的代码生成以下结果。

例子

下面的代码显示了如何使用Private成员隐藏信息。

<?php class Widget { private $name; private $price; private $id; public function __construct($name, $price) { $this->name = $name; $this->price = floatval($price); $this->id = uniqid(); } //checks if two widgets are the same public function equals($widget) { return(($this->name == $widget->name) AND ($this->price == $widget->price)); } } $w1 = new Widget("Cog", 5.00); $w2 = new Widget("Cog", 5.00); $w3 = new Widget("Gear", 7.00); //TRUE if($w1->equals($w2)) { print("w1 and w2 are the same<br>\n"); } //FALSE if($w1->equals($w3)) { print("w1 and w3 are the same<br>\n"); } //FALSE, == includes id in comparison if($w1 == $w2) { print("w1 and w2 are the same<br>\n"); } ?>

上面的代码生成以下结果。

标签:访问控制