PHP类中公共、私有、保护的区别及实例分析
一、公共、私人、受保护之间的区别公共:权限是最大的,内部调用,实例调用,等等。
受保护:此类的保护类型和继承类调用。
私有:私有类型,仅用于此类。
二,一个例子
复制代码代码如下所示:
< PHP
error_reporting(e_all);
类测试{
公共单位;
私人$私人;
受保护的受保护的;
静态实例;
公共功能__construct(){
美元->公共=征收;
美元->担保的非盈利的私人=;
美元->保护= 'protected;
}
静态函数坦克(){
如果(!isset(自::{ get_class美元()))))实例
{
C = get_class(美元);
自;
}
返回::$实例;
}
公共功能pub_function(){
您请求公共函数;
这是公开的;
可以调用私有的
可以被调用;
美元-> pri_function(); / /私有方法,内部可称为
美元-> pro_function(); / /保护方法,内部可称为
}
保护功能pro_function(){
您请求保护函数;
}
Private function pri_function () {
您请求私有函数;
}
}
$ test =;
公共测试;
测试>私有;致命错误:无法访问私有属性测试::$私有
保护:无法访问受保护的属性测试::$受保护
为测试-> pub_function();
为测试-> pro_function(); / /致命错误:调用受保护的方法测试::pro_function()从上下文
为测试-> pri_function(); / /致命错误:调用私有方法的测试::pri_function()从上下文
>
从上面的例子中,我们可以看到
公共:可以在类内调用,也可以实例化。
私募:可以调用内部类,实例化调用错误。
受保护:您可以在内部调用类并实例化调用错误。
复制代码代码如下所示:
< PHP
类测试{
公共单位;
私人$私人;
受保护的受保护的;
静态实例;
公共功能__construct(){
美元->公共=征收;
美元->担保的非盈利的私人=;
美元->保护= 'protected;
}
受保护的函数(坦克){私有方法不能被继承,用于公共的、受保护的
如果(!isset(自::{ get_class美元()))))实例
{
C = get_class(美元);
自;
}
返回::$实例;
}
公共功能pub_function(){
您请求公共函数;
这是公开的;
}
保护功能pro_function(){
您请求保护函数;
回声$此>保护;
}
私有函数pri_function(){
您请求私有函数;
这是私人的;
}
}
类test1延伸试验{
公共功能__construct(){
家长::坦克();
家长::__construct();
}
公共函数坦克(){
这是公开的;
echo $这->私人; / /注意:未定义的属性:test1::$私人
回声$此>保护;
美元-> pub_function();
美元-> pro_function();
美元-> pri_function(); / /致命错误:调用私有方法的测试::pri_function()从context'test1
}
公共功能pro_extends_function(){
回声你请求extends_protected功能;
}
公共功能pri_extends_function(){
回声你请求extends_private功能;
}
}
error_reporting(e_all);
为测试=新test1();
为测试->坦克(); / /属性和子类和父类同名的方法,子类的实例化,子类的属性和方法将覆盖掉父类。
>
从上面的例子中,我们可以看到
公众:测试可以继承。
私有私有:测试不能继承。
受保护的保护:测试可以继承。
静态的静态:测试可以继承。
唉,对于这些事,总不喜欢记住,用时总感觉是错的,也要去检查,所以写个例子,方便自己看。