There are three types of access permissions for class methods in php: 1. Public type (public), which can be used inside the class, in subclasses or outside the class without restriction; 2. Protected type ( protected); 3. Private type (private), which can only be used inside the class and cannot be used outside the class or in subclasses.
The operating environment of this tutorial: windows7 system, PHP7.1 version, DELL G3 computer
Members of the class Method
Functions defined in a class are called member methods. The only difference between functions and member methods is that functions implement an independent function, while member methods implement a behavior in the class and are part of the class.
You can declare multiple member methods in a class. The declaration of member methods is exactly the same as the declaration of functions. However, when declaring member methods, you can add some access modifiers in front of the function keyword to control access. Permissions, such as public, private, protected, etc.
Method access permissions
There are three access permissions:
public: public type,Can be used inside a class, in a subclass, or outside a class without restriction
Features: externally callable, internally callable, subclass callable
In subclasses You can call public methods or properties through self::var, and parent::method to call parent class methods
In instances, you can call public methods or properties through $obj->var
protected: protected type, can be used inside the class and in subclasses, but cannot be used outside the class
Features: cannot be called externally, but subclasses can be called internally Can be called
In the subclass, you can call the protected method or attribute through self::var, and parent::method calls the parent class method
In the instance, you cannot call it through $obj->var Calling methods or properties of protected type
private: Private type, can only be used inside the class, and cannot be used outside the class or in subclasses.
Features: Not callable externally, callable internally, not callable by subclasses
The attributes or methods of this type can only be used in this class, in instances and subclasses of this class, Private type properties and methods cannot be called in instances of subclasses
Note:
When creating a method, if it is not specified, it will default to public.
<?php class EMBA_student // 声明EMBA学生类 { //用private来定义私有类的属性 private $no; //序号 private $name; // 姓名 private $gender; //性别 private $age; //年龄 //方法 //方法1 ,私有方法,输出年龄 private function show_age() { echo"我的年龄是:$this->age<br />"; } //方法2,公有方法,回答年龄 public function ask_age() { $this->show_age(); } //方法3,设置数据 function set_data($arr){ $this->no=$arr["no"]; $this->name=$arr["name"]; $this->gender=$arr["gender"]; $this->age=$arr["age"]; } } //实例化一个对象 $s=new EMBA_student; $arr=array("no"=>"1","name"=>"Qian Zhang","gender"=>"Female","age"=>"33","department"=>"商业营销"); $s->set_data($arr); //echo $s->age;//Fatal error: Cannot access private property EMBA_student::$age in C:\xampp\htdocs\v\v.php on line 47 //$s->show_age(); //Fatal error: Call to private method EMBA_student::show_age() from context '' in C:\xampp\htdocs\v\v.php on line 48 $s->ask_age(); ?>
Result:
我的年龄是:33
Supplement: The difference between self and parent
a). These two objects are commonly used in subclasses. Their main difference is that self can call public or protected properties in the parent class, but parent cannot call
b).self:: It represents the static members (methods and properties) of the current class and $ this is different, $this refers to the current object
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of What are the access rights of class methods in php. For more information, please follow other related articles on the PHP Chinese website!