分享下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防注
Jan 15 PHP
php adodb介绍
Mar 19 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
Nov 12 PHP
ThinkPHP CURD方法之field方法详解
Jun 18 PHP
php实现二进制和文本相互转换的方法
Apr 18 PHP
PHP添加图片水印、压缩、剪切的封装类
Aug 17 PHP
PHP防止刷新重复提交页面的示例代码
Nov 11 PHP
php中session定期自动清理的方法
Nov 12 PHP
浅析php设计模式之数据对象映射模式
Mar 03 PHP
PHP定义字符串的四种方式详解
Feb 06 PHP
php web环境和命令行环境下查找php.ini的位置
Jul 17 PHP
php-fpm超时时间设置request_terminate_timeout资源问题分析
Sep 27 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二维数组转成字符串示例
2014/02/17 PHP
解决cPanel无法安装php5.2.17
2014/06/22 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
2014/06/26 PHP
javascript SpiderMonkey中的函数序列化如何进行
2012/12/05 Javascript
js导航菜单(自写)简单大方
2013/03/28 Javascript
JS实现遮罩层效果的简单实例
2013/11/12 Javascript
js 处理数组重复元素示例代码
2013/12/27 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
JavaScript 面向对象与原型
2015/04/10 Javascript
浅析angularJS中的ui-router和ng-grid模块
2016/05/20 Javascript
Bootstrap 3.x打印预览背景色与文字显示异常的解决
2016/11/06 Javascript
Vue实现自带的过滤器实例
2017/03/09 Javascript
纯JS实现简单的日历
2017/06/26 Javascript
vue判断input输入内容全是空格的方法
2018/03/02 Javascript
浅谈Vue为什么不能检测数组变动
2019/10/14 Javascript
vue中使用极验验证码的方法(附demo)
2019/12/04 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
2020/05/19 jQuery
Vue中父子组件的值传递与方法传递
2020/09/28 Javascript
Python之os操作方法(详解)
2017/06/15 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
使用Python爬取最好大学网大学排名
2018/02/24 Python
python调用并链接MATLAB脚本详解
2019/07/05 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
python实现KNN分类算法
2019/10/16 Python
PyTorch实现ResNet50、ResNet101和ResNet152示例
2020/01/14 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
2020/03/09 Python
iostream与iostream.h的区别
2015/01/16 面试题
企业晚会策划方案
2014/05/29 职场文书
商场父亲节活动方案
2014/08/27 职场文书
工作检讨书怎么写
2014/10/10 职场文书
给医院的感谢信
2015/01/21 职场文书
办公用品质量保证书
2015/05/11 职场文书
关爱留守儿童主题班会
2015/08/13 职场文书
关于教师节的广播稿
2015/08/19 职场文书
node.js如何自定义实现一个EventEmitter
2021/07/16 Javascript
Win11 Build 25179预览版发布(附更新内容+ISO官方镜像下载)
2022/08/14 数码科技