分享下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实现文件上传二法
Oct 09 PHP
基于mysql的论坛(6)
Oct 09 PHP
Windows中安装Apache2和PHP4权威指南
Nov 18 PHP
php array_walk() 数组函数
Jul 12 PHP
对比分析php中Cookie与Session的异同
Feb 19 PHP
完美解决thinkphp唯一索引重复时出错的问题
Mar 31 PHP
php实现的后台表格分页功能示例
Oct 23 PHP
PHP基于回溯算法解决n皇后问题的方法示例
Nov 07 PHP
作为PHP程序员你要知道的另外一种日志
Jul 30 PHP
php-fpm中max_children的配置
Mar 15 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
Feb 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地址引用(php地址引用的效率问题)
2012/03/23 PHP
基于PHP+Ajax实现表单验证的详解
2013/06/25 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
laravel中的错误与日志用法详解
2016/07/26 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
JavaScript isPrototypeOf和hasOwnProperty使用区别
2010/03/04 Javascript
eclipse如何忽略js文件报错(附图)
2013/10/30 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
jQuery文字提示与图片提示效果实现方法
2016/07/04 Javascript
Vue制作Todo List网页
2017/04/26 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
2017/07/25 Javascript
vue动态路由实现多级嵌套面包屑的思路与方法
2017/08/16 Javascript
Vue组件创建和传值的方法
2018/08/17 Javascript
微信小程序动态增加按钮组件
2018/09/14 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
2020/04/11 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
html中创建并调用vue组件的几种方法汇总
2020/11/17 Javascript
[01:04:05]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python的装饰器模式与面向切面编程详解
2015/06/21 Python
python实现数据写入excel表格
2018/03/25 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
解决Django响应JsonResponse返回json格式数据报错问题
2020/08/09 Python
Julep官网:美容产品和指甲油
2017/02/25 全球购物
Hanro官网:奢华男士和女士内衣、睡衣和家居服
2018/10/25 全球购物
Servlet如何得到客户端机器的信息
2014/10/17 面试题
大学生怎样进行自我评价
2013/12/07 职场文书
陈欧广告词
2014/03/14 职场文书
二年级学生评语大全
2014/04/23 职场文书
敬业奉献模范事迹材料
2014/12/24 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书
收入证明申请书
2015/06/12 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
简述python四种分词工具,盘点哪个更好用?
2021/04/13 Python
详细总结Python常见的安全问题
2021/05/21 Python
企业版Windows 11有哪些新功能? Win11适用于企业的功能介绍
2021/11/21 数码科技
Windows Server 2016 配置 IIS 的详细步骤
2022/04/28 Servers