Home > Backend Development > PHP Problem > What are the access rights of class methods in php

What are the access rights of class methods in php

青灯夜游
Release: 2023-03-15 11:48:01
Original
3771 people have browsed it

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.

What are the access rights of class methods in php

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 &#39;&#39; in C:\xampp\htdocs\v\v.php on line 48

 $s->ask_age();

  ?>
Copy after login

Result:

我的年龄是:33
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template