分享下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 相关文章推荐
探讨:array2xml和xml2array以及xml与array的互相转化
Jun 24 PHP
PHP中ini_set和ini_get函数的用法小结
Feb 18 PHP
Thinkphp中数据按分类嵌套循环实现方法
Oct 30 PHP
php网站被挂木马后的修复方法总结
Nov 06 PHP
php单例模式实现方法分析
Mar 14 PHP
简单的自定义php模板引擎
Aug 26 PHP
PHP递归遍历指定文件夹内的文件实现方法
Nov 15 PHP
YII框架批量插入数据的方法
Mar 18 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
PHP中实现中文字串截取无乱码的解决方法
May 29 PHP
PHP聊天室简单实现方法详解
Dec 08 PHP
PHP面向对象程序设计之对象的遍历操作示例
Jun 12 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控制用户的浏览器--ob*函数的使用说明
2007/03/16 PHP
PHP与MySQL开发中页面乱码的产生与解决
2008/03/27 PHP
PHP 图像尺寸调整代码
2010/05/26 PHP
php懒人函数 自动添加数据
2011/06/28 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
2014/01/09 PHP
C#静态方法与非静态方法实例分析
2014/09/22 PHP
PHP常见数组函数用法小结
2016/03/21 PHP
php如何利用pecl安装mongodb扩展详解
2019/01/09 PHP
一文看懂PHP进程管理器php-fpm
2020/06/01 PHP
用一段js程序来实现动画功能
2007/03/06 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
Javascript call和apply区别及使用方法
2013/11/14 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
2015/08/24 Javascript
跟我学习javascript的arguments对象
2015/11/16 Javascript
sea.js常用的api简易文档
2016/11/15 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
详解通过JSON数据使用VUE.JS
2017/05/26 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
layui实现table加载的示例代码
2018/08/14 Javascript
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
koa2 从入门到精通(小结)
2019/07/23 Javascript
微信小程序点餐系统开发常见问题汇总
2019/08/06 Javascript
[43:47]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第一场 12.09
2020/12/11 DOTA
python 示例分享---逻辑推理编程解决八皇后
2014/07/20 Python
python实现给微信公众号发送消息的方法
2017/06/30 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
2017/08/08 Python
Python标准库之itertools库的使用方法
2017/09/07 Python
django admin组件使用方法详解
2019/07/19 Python
Python实现时间序列可视化的方法
2019/08/06 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
Python接口测试数据库封装实现原理
2020/05/09 Python
Python通过字典映射函数实现switch
2020/11/06 Python
英国领先的独立酒精饮料零售商:DrinkSupermarket
2021/01/13 全球购物
个人查摆问题及整改措施
2014/10/16 职场文书
2014年科室工作总结
2014/11/20 职场文书
用Python实现Newton插值法
2021/04/17 Python