您的位置:首页 > 编程语言 > PHP开发

在php中public、protected、private三者之间的区别

2013-02-18 10:43 483 查看
一、public、protected、private

       首先我们要知道,public、protected、private 这三者都是用于PHP类或方法的访问控制模式

       1、public: 公共类型

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

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

              简单的说就是该类型的类或方法,都可以在其它或方法中调用,相当于资源共享

       2、protected: 受保护类型

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

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

              用一句俗话说,就是老子的东西可以给儿子用,如果没有直系血缘关系的是不可以用的

        3、private: 私有类型

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

              私有的应该比较好理解,就像私人财产,任何人都不可以动

二.self 和 parent 的区别

        1、在子类中常用到这两个对像。他们的主要区别在于self可以调用父类中的公有或受保护的属性,但parent不可以调用
[align=left]     2、self:: 它表示当前类的静态成员(方法和属性) 与 $this 不同,$this是指当前对像[/align]

代码实例:

#首先我们创建一个类A
class A{
public function f1(){  #我的公共的
echo '我的公共的';
}
public function f2(){  #我是私有的
echo '我是私有的';
}
public function f3(){  #我是私有的
echo '我是私有的';
}
}

#我们再创建一个子类B,继承父类A
class B extends A{
#我们先来调用父类的方法
$this->f1();   #这样是正确的
$this->f2();   #这样是正确的
$this->f3();   #这样是错误的,因为F3方法是私有的,只可以被本身调用

#其它的就不多说了,慢慢去体会一下
}

欢迎转载,转载请注明:http://yezis.cn/thread-35794-1-1.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: