分享下php5类中三种数据类型的区别


Posted in PHP onJanuary 26, 2015

public: 公有类型

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

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

protected: 受保护类型
在子类中可以通过self::var 来调用 protected类型的方法或属性 可以通过parent::method 来调用父类中的方法
在实例中不能通过$obj->var 来调用 protected类型的方法或属性

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

2.self 和 parent 的区别
a).在子类中常用到这两个对像。他们的主要区别在于self可以调用父类中的公有或受保护的属性,但parent不可以调用

b).self:: 它表示当前类的静态成员(方法和属性) 与 $this 不同,$this是指当前对像

附代码:

<?php
/**
 * parent 只能调用父类中的公有或受保护的方法,不能调用父类中的属性
 * self  可以调用父类中除私有类型的方法和属性外的所有数据
 */
class User{
 public $name;
 private $passwd;
 protected $email; 
 public function __construct(){
  //print __CLASS__." ";
  $this->name= 'simple';
  $this->passwd='123456';
  $this->email = 'bjbs_270@163.com';
 } 
 public function show(){
  print "good ";
 } 
 public function inUserClassPublic() {
  print __CLASS__.'::'.__FUNCTION__." ";
 } 
 protected function inUserClassProtected(){
  print __CLASS__.'::'.__FUNCTION__." ";
 } 
 private function inUserClassPrivate(){
  print __CLASS__.'::'.__FUNCTION__." ";
 }
}

class simpleUser extends User { 
 public function __construct(){  
  //print __CLASS__." ";
  parent::__construct();
 }
 
 public function show(){
  print $this->name."//public ";  
  print $this->passwd."//private ";
  print $this->email."//protected ";
 }
 
 public function inSimpleUserClassPublic() {
  print __CLASS__.'::'.__FUNCTION__." ";
 }
 
 protected function inSimpleUserClassProtected(){
  print __CLASS__.'::'.__FUNCTION__." ";
 }
 
 private function inSimpleUserClassPrivate() {
  print __CLASS__.'::'.__FUNCTION__." ";
 }
}

class adminUser extends simpleUser {
 protected $admin_user;
 public function __construct(){
  //print __CLASS__." ";
  parent::__construct();
 }
 
 public function inAdminUserClassPublic(){
  print __CLASS__.'::'.__FUNCTION__." ";
 }
 
 protected function inAdminUserClassProtected(){
  print __CLASS__.'::'.__FUNCTION__." ";
 }
 
 private function inAdminUserClassPrivate(){
  print __CLASS__.'::'.__FUNCTION__." ";
 }
}

class administrator extends adminUser {
 public function __construct(){  
  parent::__construct();
 }
}

/**
 * 在类的实例中 只有公有属性和方法才可以通过实例化来调用
 */
$s = new administrator();
print '-------------------';
$s->show();
?>
PHP 相关文章推荐
提升PHP执行速度全攻略
Oct 09 PHP
Apache+php+mysql在windows下的安装与配置图解(最新版)
Nov 30 PHP
Base64在线编码解码实现代码 演示与下载
Jan 08 PHP
探讨多键值cookie(php中cookie存取数组)的详解
Jun 06 PHP
ThinkPHP表单自动提交验证实例教程
Jul 18 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
Aug 22 PHP
10个实用的PHP正则表达式汇总
Oct 23 PHP
php通过array_merge()函数合并关联和非关联数组的方法
Mar 18 PHP
ThinkPHP控制器详解
Jul 27 PHP
利用php-cli和任务计划实现订单同步功能的方法
May 03 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
May 23 PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
Oct 11 PHP
php字符串过滤与替换小结
Jan 26 #PHP
PHP利用APC模块实现文件上传进度条的方法
Jan 26 #PHP
php使用cookie保存用户登录的用户名实例
Jan 26 #PHP
PHP简单选择排序算法实例
Jan 26 #PHP
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
Jan 26 #PHP
php使用cookie显示用户上次访问网站日期的方法
Jan 26 #PHP
php批量删除cookie的简单实现方法
Jan 26 #PHP
You might like
Gregarius中文日期格式问题解决办法
2008/04/22 PHP
php生成图片缩略图的方法
2015/04/07 PHP
PHP实现PDO操作mysql存储过程示例
2019/02/13 PHP
jQuery 中关于CSS操作部分使用说明
2007/06/10 Javascript
JQuery 技巧和窍门整理(8个)
2010/04/22 Javascript
浏览器加载、渲染和解析过程黑箱简析
2012/11/29 Javascript
关于jquery中全局函数each使用介绍
2013/12/10 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
javascript实时获取鼠标坐标值并显示的方法
2015/04/30 Javascript
jQuery插件bgStretcher.js实现全屏背景特效
2015/06/05 Javascript
jQuery使用$.ajax进行即时验证的方法
2015/12/08 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
分类解析jQuery选择器
2016/11/23 Javascript
移动端界面的适配
2017/01/11 Javascript
35个最好用的Vue开源库(史上最全)
2019/01/03 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
2020/01/19 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
jQuery实现鼠标滑动切换图片
2020/05/27 jQuery
vue iview实现动态新增和删除
2020/06/17 Javascript
jQuery实现简单日历效果
2020/07/05 jQuery
Win7上搭建Cocos2d-x 3.1.1开发环境
2014/07/03 Python
使用Python生成随机密码的示例分享
2016/02/18 Python
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
python实现基于SVM手写数字识别功能
2020/05/27 Python
Python实现的json文件读取及中文乱码显示问题解决方法
2018/08/06 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
2018/09/04 Python
在Python函数中输入任意数量参数的实例
2019/07/16 Python
详解Python用三种方式统计词频的方法
2019/07/29 Python
基于python实现坦克大战游戏
2020/10/27 Python
白俄罗斯大卖场:21vek.by
2019/07/25 全球购物
机关干部个人对照检查材料思想汇报
2014/09/28 职场文书
PHP解决高并发问题
2021/04/01 PHP
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python
Python按顺序遍历并读取文件夹中文件
2022/04/29 Python
JavaScript实现九宫格拖拽效果
2022/06/28 Javascript