php's access control symbols are: 1. public, set the property or method to be accessible from anywhere; 2. private, set the property or method to be accessible only by its own class or object; 3. Protected, sets a property or method to be accessible by its class or its descendants.
The operating environment of this tutorial: windows7 system, PHP7.1 version, DELL G3 computer
Access control modifier list
Access modifier | Meaning |
---|---|
Public | Set a property or method to be accessible from anywhere |
Private | Set a property or method to be accessible only by its own class or object |
Protected | Set a property or method to be accessible by its class or its descendants |
public
Public properties and methods can be accessed from anywhere.
<?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; ?>
By default, all class methods are public.
The above code generates the following results.
private
Private properties can only be accessed within their own class.
<?PHP class Book { private $Name; private $NameTag; public function setName($NewName) { // etc } } ?>
Subclasses cannot access private parent methods and properties. If you want to do this, you need the protected keyword.
Protected
Protected properties and methods are accessible within their own class and subclasses. Consider the following code:
<?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(); ?>
The above code generates the following results.
Example
The code below shows how to use Private members to hide information.
<?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"); } ?>
The above code generates the following results.
Recommended study: "PHP Video Tutorial"
The above is the detailed content of What are the access control characters of php?. For more information, please follow other related articles on the PHP Chinese website!