微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php访问权限修饰符有哪几种

PHP访问权限修饰符有三种:1、public,表示共有的,权限范围最大,在任意位置都可以访问;2、protected,表示受保护的、继承的,只能类本身和类的内部成员可以访问;3、private,表示私有的,只能在类定义的大括号内才可以访问。

本文操作环境:Windows10系统、PHP8.1版、Dell G3电脑

PHP访问权限修饰符有哪几种

有三种:

  • public 共有的

  • protected 受保护的,继承的

  • private 私有的

详细介绍:

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 '' in C:\xampp\htdocs\v\v.PHP on line 48
 $s->ask_age();
  ?>

推荐学习:《PHP教程

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐