本篇文章是对php class中public,private,protected的区别以及实例进行了详细的分析介绍,需要的朋友参考下
一,public,private,protected的区别
public:权限是最大的,可以内部调用,实例调用等。
protected: 受保护类型,用于本类和继承类调用。
private: 私有类型,只有在本类中使用。
二,实例

<?php
error_reporting(E_ALL);
class test{
public $public;
private $private;
protected $protected;
static $instance;
public  function __construct(){
$this->public    = 'public     <br>';
$this->private   = 'private    <br>';
$this->protected = 'protected  <br>';
}
static function tank(){
if (!isset(self::$instance[get_class()]))
{
$c = get_class();
self::$instance = new $c;
}
return self::$instance;
}    
public function pub_function() {
echo "you request public function<br>";
echo $this->public;
echo $this->private;        //private,内部可以调用
echo $this->protected;      //protected,内部可以调用
$this->pri_function();      //private方法,内部可以调用
$this->pro_function();      //protected方法,内部可以调用
}
protected  function pro_function(){
echo "you request protected function<br>";
}
private function pri_function(){
echo "you request private function<br>";
}
}
$test = test::tank();
echo $test->public;
echo $test->private;    //Fatal error: Cannot access private property test::$private
echo $test->protected;  //Fatal error: Cannot access protected property test::$protected
$test->pub_function();
$test->pro_function();  //Fatal error: Call to protected method test::pro_function() from context
$test->pri_function();  //Fatal error: Call to private method test::pri_function() from context
?>


 从上面的例子中,我们可以看出,
public:    可以class内部调用,可以实例化调用。
private:   可以class内部调用,实例化调用报错。
protected:  可以class内部调用,实例化调用报错。

<?php
class test{
public $public;
private $private;
protected $protected;
static $instance;
public  function __construct(){
$this->public    = 'public     <br>';
$this->private   = 'private    <br>';
$this->protected = 'protected  <br>';
}
protected function tank(){                          //私有方法不能继承,换成public,protected
if (!isset(self::$instance[get_class()]))
{
$c = get_class();
self::$instance = new $c;
}
return self::$instance;
}    
public function pub_function() {
echo "you request public function<br>";
echo $this->public;
}
protected  function pro_function(){
echo "you request protected function<br>";
echo $this->protected;
}
private function pri_function(){
echo "you request private function<br>";
echo $this->private;
}
}
class test1 extends test{
public function __construct(){
parent::tank();
parent::__construct();
}
public function tank(){
echo $this->public;
echo $this->private;       //Notice: Undefined property: test1::$private
echo $this->protected;
$this->pub_function();
$this->pro_function();
$this->pri_function();    //Fatal error: Call to private method test::pri_function() from context 'test1'
}
public  function pro_extends_function(){
echo "you request extends_protected function<br>";
}
public function pri_extends_function(){
echo "you request extends_private function<br>";
}
}
error_reporting(E_ALL);
$test = new test1();
$test -> tank();       //子类和父类有相同名字的属性和方法,实例化子类时,子类的中的属性和方法会盖掉父类的。
?>

从上面的例子中,我们可以看出,

public:    test中的public可以被继承。
private:   test中的private不可以被继承。
protected:test中的protected可以被继承。
static:   test中的static可以被继承。
唉,对于这些东西,老是不喜欢记着,用的时候,总感觉不对,又要去查,所以写个例子,方便自己查看。

php class中public,private,protected的区别以及实例分析相关推荐

  1. PHP Class中public,private,protected,static的区别

    PHP Class中public,private,protected,static的区别 public:权限是最大的,可以内部调用,实例调用,可以被继承. protected:受保护类型,用于本类和继 ...

  2. dim private public static_PHP中const,static,public,private,protected的区别

    const: 定义常量,一般定义后不可改变 static: 静态,类名可以访问 public: 表示全局,类内部外部子类都可以访问: private: 表示私有的,只有本类内部可以使用: protec ...

  3. java中public,private,protect,default区别

    Java中访问修饰符public.private.protect.default范围 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://lvdairy.blogbus.c ...

  4. C++中public/private/protected三种继承方式下基类成员对派生类的可见性探讨

     原文: http://blog.csdn.net/zgjxwl/article/details/4804233 1.public继承方式下 #include <iostream>   ...

  5. java class private_Java class 中public、protected 、friendly、private的区别

    转载自:http://hi.baidu.com/ceoct/item/7e136a2417ba6f896f2cc33c Java class 中public.protected .friendly.p ...

  6. C++中public,protected,private的区别

    C++中public,protected,private个人总结为两种概念,一个宗旨. 两种概念: 概念一:静态的 在C++中一个类的成员的访问级别可分为public,protected,和priva ...

  7. PHP中private什么意思,PHP中的private和public还有protected的区别

    最近H5项目繁忙,没空写PHP的学习心得.今天补上: 在接触PHP的最开始,我首先是看了PHP的源代码,PHP的源代码大致分四层:SAPI:接口层.main业务层.zend.以及扩展层EXT:这就是我 ...

  8. public,private,protected访问权限在Java,C++中的解析

    Java中: Java中的访问权限有public,private,protected和默认的包访问权限,如果类中的属性方法没有显示的指明访问权限,则具有包访问权限,我喜欢称它为packeged权限,很 ...

  9. 深入理解C++中public、protected及private用法

    深入理解C++中public.protected及private用法 这篇文章主要介绍了C++中public.protected及private用法,对于C++面向对象程序设计来说是非常重要的概念,需 ...

最新文章

  1. 求13-23+33……-1003(3.6)(Java)
  2. python3 字典 dict 常见用法总结(判断key是否存在)
  3. C# 获取并判断操作系统版本,解决Win10、 Windows Server 2012 R2 读取失败的方案
  4. 循环控制_break语句
  5. jeecms v9开发资料
  6. 同事就是同事,职场没有兄弟姐妹
  7. 论坛高级签名_首届中国定制白酒高峰论坛在天津盘山举行
  8. php 自定义加密算法,php自定义加密函数、解密
  9. winform 的exe为什么移动之后不能使用_C++MyDock配置要求、所需运行库、常见问题 初次使用必看...
  10. 面向对象8:继承性、Object类的理解、写项目经验、debug经验
  11. 行哥介绍29个国内外接私活渠道,总有一款适合你
  12. matlab里用多边形裁剪图片,多边形裁剪图片与自定义 Gizmo Cocos Creator
  13. c++11并发与多线程
  14. 苹果又来割韭菜?一块擦屏布卖145元,这玩意到底是不是智商税?
  15. 土豆网终于忍不住了,开始了影视站转型。
  16. c语言程序设计评分标准,c语言程序设计期末(A)标准答案及评分标准.doc
  17. 数字IC设计 - 逻辑综合简介与Design Compiler使用(GUI方式)
  18. Systrace 流畅性实战 2 :案例分析: MIUI 桌面滑动卡顿分析
  19. MATLAB常用快捷键:自动补全、自动排版、注释、去掉注释
  20. 解决异常 Data truncation: Incorrect datetime value: '' for column 'ordertime'

热门文章

  1. 化妆品护肤DiY的广告界面 简单的jquery 图片无缝滚动
  2. C++入门经典(第三版 Ivor Horton著)第二章习题答案
  3. 基于Element组件下动态生成多级表头以及数据
  4. 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 HDU - 2191(特殊01背包)
  5. 怎样在 Kindle 中使用微信读书?
  6. 关于Qt各个版本的下载地址
  7. ios 高德获取定位_更新日志-iOS 定位SDK | 高德地图API
  8. 云计算中存储继承知识
  9. 计算机接入因特网有几种方式有哪些,简述几种因特网的接入方式?
  10. apk私钥_Android应用apk的程序签名详解