分享下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 adodb分页实现代码
Mar 19 PHP
php 判断数组是几维数组
Mar 20 PHP
php session劫持和防范的方法
Nov 12 PHP
php递归删除目录与文件的方法
Jan 30 PHP
PHP的文件操作与算法实现的面试题示例
Aug 10 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
Sep 10 PHP
PHP扩展Memcache分布式部署方案
Dec 06 PHP
Yii2框架实现注册和登录教程
Sep 30 PHP
thinkphp整合微信支付代码分享
Nov 24 PHP
phpmyadmin下载、安装、配置教程
May 16 PHP
PHP文件系统管理(实例讲解)
Sep 19 PHP
php中青蛙跳台阶的问题解决方法
Oct 14 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
php指定长度分割字符串str_split函数用法示例
2017/01/30 PHP
PHP实现动态添加XML中数据的方法
2018/03/30 PHP
Phpstorm+Xdebug断点调试PHP的方法
2018/05/14 PHP
js 跨域和ajax 跨域问题小结
2009/07/01 Javascript
Zero Clipboard js+swf实现的复制功能使用方法
2010/03/07 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
jQuery.each使用详解
2015/07/07 Javascript
jquery获取url参数及url加参数的方法
2015/10/26 Javascript
JS实现模拟百度搜索“2012世界末日”网页地震撕裂效果代码
2015/10/31 Javascript
js仿支付宝填写支付密码效果实现多方框输入密码
2016/03/09 Javascript
AngularJS 实现JavaScript 动画效果详解
2016/09/08 Javascript
JS实现鼠标移上去显示图片或微信二维码
2016/12/14 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
jQuery实现广告条滚动效果
2017/08/22 jQuery
简单明了区分escape、encodeURI和encodeURIComponent
2018/05/26 Javascript
微信小程序scroll-view仿拼多多横向滑动滚动条
2020/04/21 Javascript
微信小程序 动态修改页面数据及参数传递过程详解
2019/09/27 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
[17:45]DOTA2 HEROES教学视频教你分分钟做大人-军团指挥官
2014/06/11 DOTA
[01:59]深扒TI7聊天轮盘语音出处 1
2017/05/11 DOTA
python缩进区别分析
2014/02/15 Python
python实用代码片段收集贴
2015/06/03 Python
利用python求解物理学中的双弹簧质能系统详解
2017/09/29 Python
python使用pandas实现数据分割实例代码
2018/01/25 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
python利用Tesseract识别验证码的方法示例
2019/01/21 Python
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
解决pytorch 保存模型遇到的问题
2021/03/03 Python
汽修专业学生自我鉴定
2013/11/16 职场文书
国贸专业大学生职业生涯规划范文
2014/01/10 职场文书
探亲假请假条
2014/04/11 职场文书
留学生求职信
2014/06/03 职场文书
公司领导班子民主生活会对照检查材料
2014/10/02 职场文书
主持人开场白台词
2015/05/29 职场文书
防溺水主题班会教案
2015/08/12 职场文书
MySQL 数据类型详情
2021/11/11 MySQL