类成员的访问限制

Original 2018-11-29 10:46:59 305
abstract:PHP有三种访问方式:public,private和protected. 对于一个类成员的访问方式,可以是其中之一. 如果没有指明访问方式,默认地访问方式为public. 也可以为静态成员指明一种访问方式,将访问方式放在static关键字之前(如public static).Public成员可以被毫无限制地访问.类外部的任何代码都可以读写public属性. 可以从脚本的任何地方调用一个public

PHP有三种访问方式:public,private和protected. 对于一个类成员的访问方式,可以是其中之一. 如果没有指明访问方式,默认地访问方式为public. 也可以为静态成员指明一种访问方式,将访问方式放在static关键字之前(如public static).

Public成员可以被毫无限制地访问.类外部的任何代码都可以读写public属性. 可以从脚本的任何地方调用一个public方法. 在PHP的前几个版本中,所有方法和属性都是public, 这让人觉得对象就像是结构精巧的数组.

protected成员在类的内部,类的继承上下文环境中允许使用,类的外部禁止使用。

Private(私有)成员只在类的内部可见. 不能在一个private属性所在的类方法之外改变或读取它的值. 同样地,只有在同一个类中的方法可以调用一个private方法. 继承的子类也不能访问父类中的private 成员.

<?php
//类成员的访问限制
class Staff
{
public $name;//公共,类的内部、外部以及继承的子类都可以访问
protected $dept;//保护的,在类的内部以及继承的子类可以访问,外部不能访问
private $salary;//私有的,仅在类的内部使用
public function __construct($name,$dept,$salary){
$this->name=$name;
$this->dept=$dept;
$this->salary=$salary;
}
//创建接口访问受保护的成员
    public function getDept(){
return $this->dept;
}
}
$staff= new Staff();
$staff->name='刘子光';
$staff->dept='保安部';
$staff->salary=5000;
echo $staff->name;//可以访问
//echo $staff->dept;//bu可以访问
//echo $staff->getDept();//可以访问
?>


Release Notes

Popular Entries