分享下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 相关文章推荐
第八节--访问方式
Nov 16 PHP
用php实现百度网盘图片直链的代码分享
Nov 01 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
Apr 25 PHP
php命令行使用方法和命令行参数说明
Apr 08 PHP
php jsonp单引号转义
Nov 23 PHP
PHP利用APC模块实现文件上传进度条的方法
Jan 26 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
Mar 17 PHP
Laravel 5框架学习之向视图传送数据
Apr 08 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
Jun 21 PHP
Yii1.1框架实现PHP极光推送消息通知功能
Sep 06 PHP
PHP中Static(静态)关键字功能与用法实例分析
Apr 05 PHP
Yii框架where查询用法实例分析
Oct 22 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实现对象克隆的方法
2015/06/20 PHP
prototype class详解
2006/09/07 Javascript
xml 与javascript结合的问题解决方法
2007/03/24 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
jquery下div 的resize事件示例代码
2014/03/09 Javascript
JQuery 图片滚动轮播示例代码
2014/03/24 Javascript
一个不错的字符串转码解码函数(自写)
2014/07/31 Javascript
jQuery实现首页顶部可伸缩广告特效代码
2015/04/15 Javascript
JavaScript实现MIPS乘法模拟的方法
2015/04/17 Javascript
jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
2015/08/09 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
使用yeoman构建angular应用的方法
2017/08/14 Javascript
浅谈vue2 单页面如何设置网页title
2017/11/08 Javascript
JavaScrip关于创建常量的知识点
2017/12/07 Javascript
Javascript网页抢红包外挂实现分享
2018/01/11 Javascript
Vue2.0实现组件数据的双向绑定问题
2018/03/06 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
深入浅析javascript函数中with
2018/10/28 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
2019/05/01 Javascript
ES6 Object属性新的写法实例小结
2019/06/25 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
JSON stringify方法原理及实例解析
2020/10/23 Javascript
利用Python绘制数据的瀑布图的教程
2015/04/07 Python
Django框架下在URLconf中指定视图缓存的方法
2015/07/23 Python
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
Python3使用pandas模块读写excel操作示例
2018/07/03 Python
python针对Oracle常见查询操作实例分析
2020/04/30 Python
Python读取多列数据以及用matplotlib制作图表方法实例
2020/09/23 Python
canvas像素点操作之视频绿幕抠图
2018/09/11 HTML / CSS
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
娇韵诗Clarins意大利官方网站:法国天然护肤品牌
2020/03/11 全球购物
学校安全教育月活动总结
2014/07/07 职场文书
2014年综合治理工作总结
2014/11/20 职场文书
九年级数学教学反思
2016/02/17 职场文书
仅用几行Python代码就能复制她的U盘文件?
2021/06/26 Python