首页  >  文章  >  后端开发  >  php中类的方法的访问权限有哪些

php中类的方法的访问权限有哪些

青灯夜游
青灯夜游原创
2022-02-18 11:24:483743浏览

php中类方法的访问权限有三种:1、公有类型(public),在类的内部、子类中或者类的外部都可以使用,不受限制;2、受保护类型(protected);3、私有类型(private),只能在类的内部使用,在类的外部或子类中都无法使用。

php中类的方法的访问权限有哪些

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

类中的成员方法

在类中定义的函数被称为成员方法。函数和成员方法唯一的区别就是,函数实现的是某个独立的功能,而成员方法是实现类中的一个行为,是类的一部分。

可以在类中声明多个成员方法,成员方法的声明和函数的声明完全一样,只不过在声明成员方法时可以在function关键字的前面加一些访问权限修饰符来控制访问权限,例如 public、private、protected 等。

方法的访问权限

有三种访问权限分别是:

public:公有类型,在类的内部、子类中或者类的外部都可以使用,不受限制

特点:外部可调用,内部可调用,子类可调用

在子类中可以通过self::var调用public方法或属性,parent::method调用父类方法

在实例中可以能过$obj->var 来调用 public类型的方法或属性

protected:受保护类型,在类的内部和子类中可以使用,但不能在类的外部使用

特点:外部不可调用 ,内部可调用 子类可以调用

在子类中可以通过self::var调用protected方法或属性,parent::method调用父类方法

在实例中不能通过$obj->var 来调用 protected类型的方法或属性

private:私有类型,只能在类的内部使用,在类的外部或子类中都无法使用。

特点:外部不可调用 ,内部可调用,子类不可调用

该类型的属性或方法只能在该类中使用,在该类的实例、子类中、子类的实例中都不能调用私有类型的属性和方法

说明:

在创建方法时,如果没有指明,默认均为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();

  ?>

结果:

我的年龄是:33

补:self 和 parent 的区别

a).在子类中常用到这两个对像。他们的主要区别在于self可以调用父类中的公有或受保护的属性,但parent不可以调用

b).self:: 它表示当前类的静态成员(方法和属性) 与 $this 不同,$this是指当前对象

推荐学习:《PHP视频教程

以上是php中类的方法的访问权限有哪些的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn