本篇文章是对php面向对象public private protected 访问修饰符进行了详细的分析介绍
需要的朋友参考下
PHP中有三种访问修饰符分别是
public(公共的默认)
protected(受保护的)
private(私有的)
public(公共的默认)在PHP中如果类没有指定成员的访问修饰符默认就是public的访问权限
protected(受保护的)被声明为protected的成员只允许该类的子类进行访问
private(私有的 ) 被定义为private的成员对于类内部所有成员都可见没有访问限制对类外部不允许访问
图解
demo
复制代码 代码如下:
class Woman{
public $name = "gaojin";
protected $age = "";
private $height = "";
function info(){
echo $this>name;
}
private function say(){
echo "这是私有的方法";
}
}
//$w = new Woman();
//echo $w>info();
//echo $w>name;//公共属性可以访问
//echo $w>age;// 受保护属性报致命错误
//echo $w>height;// 受保护属性报致命错误
//私有方法访问出错
//$w>say(); // 私有方法访问出错
class Girl extends Woman{
// 可以重新定义父类的public和protected方法但不能定义private的
//protected $name = "jingao"; // 可以从新定义
function info(){
echo $this>name;
echo $this>age;
echo $this>height;
}
function say(){
//parent::say();//私有方法 不能被继承 如果父类的的say方法是protected 这里就不会报错
echo "我是女孩";
}
}
$g = new Girl();
$g>say();//正常输出
//echo $g>height;//私有属性访问不到 没输出结果
//$g>info();//这是输出 gaojin $height是私有的属性没有被继承
//$g>height ="";//这里是重新定义 height属性 也赋值了
//$g>info();//所以这里会输出来gaojin