澳门新葡亰553311b > 新葡亰编程 > 浅析php面向对象public private protected 访问修饰符_php技巧_脚本之家

浅析php面向对象public private protected 访问修饰符_php技巧_脚本之家
2020-02-14 02:01

PHP中有三种访问修饰符,分别是:      public(公共的、默认)
     protected(受保护的)
澳门新葡亰553311b,     private(私有的)
public(公共的、默认)在PHP5中如果类没有指定成员的访问修饰符,默认就是public的访问权限。
protected(受保护的)被声明为protected的成员,只允许该类的子类进行访问。
private(私有的 ) 被定义为private的成员,对于类内部所有成员都可见,没有访问限制。对类外部不允许访问。
 
图解
澳门新葡亰网站所有平台 1
demo 复制代码 代码如下:
澳门新葡亰平台网址大全,class Woman{
    public $name = "gaojin";
    protected $age = "22";
    private $height = "170";
    function info(){
澳门新葡亰网站所有平台,浅析php面向对象public private protected 访问修饰符_php技巧_脚本之家。        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();//这是输出 gaojin22 $height是私有的属性没有被继承
//$g->height ="12";//这里是重新定义 height属性 也赋值了
//$g->info();//所以这里会输出来gaojin2212

PHP中有三种访问修饰符,分别是: public protectedpublic在PHP5中如果类没有指定成员的访问修饰符,默认就是public的访问权限。protected被声明为protected的成员,只允许该类的子类进行访问。private 被定义为private的成员,对于类内部所有成员都可见,没有访问限制。对类外部不允许访问。图解demo复制代码 代码如下:class Woman{ public $name = "gaojin"; protected $age = "22"; private $height = "170"; function info(){ echo $this->name; } private function say(){ echo "这是私有的方法"; }}//$w = new Woman;//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;//私有方法 不能被继承 如果父类的的say方法是protected 这里就不会报错 echo "我是女孩"; }}$g = new Girl;//正常输出//echo $g->height;//私有属性访问不到 没输出结果//$g->info();//这是输出 gaojin22 $height是私有的属性没有被继承//$g->height ="12";//这里是重新定义 height属性 也赋值了 //$g->info();//所以这里会输出来gaojin2212

上一篇:PHP删除HTMl标签的三种解决方法 下一篇:没有了