分享下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代码
Apr 09 PHP
PHP在字符断点处截断文字的实现代码
Apr 21 PHP
基于PHP读取TXT文件向数据库导入海量数据的方法
Apr 23 PHP
codeigniter中测试通过的分页类示例
Apr 17 PHP
PHP register_shutdown_function()函数的使用示例
Jun 23 PHP
thinkPHP3.2简单实现文件上传的方法
May 16 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
Jul 21 PHP
简单的pgsql pdo php操作类实现代码
Aug 25 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
Jul 04 PHP
PHP chr()函数讲解
Feb 11 PHP
php伪静态验证码不显示的解决方案
Sep 26 PHP
Laravel 修改默认日志文件名称和位置的例子
Oct 17 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
类的另类用法--数据的封装
2006/10/09 PHP
php中的PHP_EOL换行符详细解析
2013/10/26 PHP
PHP封装CURL扩展类实例
2015/07/28 PHP
PHP实现基于文本的摩斯电码生成器
2016/01/11 PHP
javascript之锁定表格栏位
2007/06/29 Javascript
JQuery 入门实例1
2009/06/25 Javascript
JQuery 选择和过滤方法代码总结
2010/11/19 Javascript
浅析jquery某一元素重复绑定的问题
2014/01/03 Javascript
jQuery 获取select选中值及清除选中状态
2016/12/13 Javascript
简述Angular 5 快速入门
2017/11/04 Javascript
Vue响应式原理深入解析及注意事项
2017/12/11 Javascript
详解angular2.x创建项目入门指令
2018/10/11 Javascript
js实现图片区域可点击大小随意改变(适用移动端)代码实例
2019/09/11 Javascript
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
2020/07/20 Javascript
Windows下PyMongo下载及安装教程
2015/04/27 Python
Python中将字典转换为XML以及相关的命名空间解析
2015/10/15 Python
Python中线程的MQ消息队列实现以及消息队列的优点解析
2016/06/29 Python
详解Python3中字符串中的数字提取方法
2017/01/14 Python
Python实现模拟登录网易邮箱的方法示例
2018/07/05 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
python实现两个文件夹的同步
2019/08/29 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2020/09/04 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
css3中检验表单的required,focus,valid和invalid样式
2014/02/21 HTML / CSS
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
澳大利亚先进的皮肤和激光诊所购物网站:Soho Skincare
2018/10/15 全球购物
德国的大型美妆个护电商:Flaconi
2020/06/26 全球购物
生产车间主任的个人自我鉴定
2013/10/25 职场文书
初中生操行评语大全
2014/04/24 职场文书
维修工先进事迹
2014/05/29 职场文书
好段摘抄大全(48句)
2019/08/08 职场文书
写作之关于描写老人的好段摘抄
2019/11/14 职场文书
Nginx报404错误的详细解决方法
2022/07/23 Servers