分享下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的开发框架的现状和展望
Mar 16 PHP
深入php常用函数的使用汇总
Jun 08 PHP
php中字符串和正则表达式详解
Oct 23 PHP
php正则替换处理HTML页面的方法
Jun 17 PHP
PHP中substr_count()函数获取子字符串出现次数的方法
Jan 07 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
Jan 19 PHP
linux下php上传文件注意事项
Jun 11 PHP
thinkPHP中配置的读取与C方法详解
Dec 05 PHP
PHP开发中csrf攻击的简单演示和防范
May 07 PHP
Thinkphp开发--集成极光推送
Sep 15 PHP
PHP排序算法之希尔排序(Shell Sort)实例分析
Apr 20 PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 29 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
根德YB400的电路分析
2021/03/02 无线电
Php获取金书网的书名的实现代码
2010/06/11 PHP
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
PHP simplexml_load_string()函数实例讲解
2019/02/03 PHP
php多进程应用场景实例详解
2019/07/22 PHP
关于jquery append() html时的小问题的解决方法
2010/12/16 Javascript
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
AngularJS 实现按需异步加载实例代码
2015/10/18 Javascript
jQuery1.9+中删除了live以后的替代方法
2016/06/17 Javascript
Three.js快速入门教程
2016/09/09 Javascript
NodeJs实现定时任务的示例代码
2017/12/05 NodeJs
Vue组件通信的四种方式汇总
2018/02/08 Javascript
nodejs中request库使用HTTPS代理的方法
2019/04/30 NodeJs
js实现左右轮播图
2020/01/09 Javascript
Vue 基于 vuedraggable 实现选中、拖拽、排序效果
2020/05/18 Javascript
three.js 制作动态二维码的示例代码
2020/07/31 Javascript
[45:16]完美世界DOTA2联赛循环赛 IO vs FTD BO2第二场 11.05
2020/11/06 DOTA
关于Python如何避免循环导入问题详解
2017/09/14 Python
Python生成数字图片代码分享
2017/10/31 Python
PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上
2019/04/01 Python
django使用channels实现通信的示例
2020/10/19 Python
浏览器实现移动端高性能css3动画(开启gpu加速)
2013/12/23 HTML / CSS
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
Russell Stover巧克力官方网站:美国领先的精美巧克力制造商
2016/11/27 全球购物
惊艳的手工时装首饰:Migonne Gavigan
2018/02/23 全球购物
生物科学专业个人求职信范文
2013/12/05 职场文书
先进班级集体事迹材料
2014/01/30 职场文书
《在家里》教后反思
2014/03/01 职场文书
护士长竞聘演讲稿
2014/04/30 职场文书
法律专业大学生职业生涯规划书:向目标一步步迈进
2014/09/22 职场文书
房屋出租委托书格式
2014/09/23 职场文书
地道战观后感400字
2015/06/04 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书
Python爬取科目四考试题库的方法实现
2021/03/30 Python
python 利用 PIL 将数组值转成图片的实现
2021/04/12 Python
Python 匹配文本并在其上一行追加文本
2022/05/11 Python