分享下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+xslt在windows平台上
Oct 09 PHP
php横向重复区域显示二法
Sep 25 PHP
PHP 文件类型判断代码
Mar 13 PHP
Php Mssql操作简单封装支持存储过程
Dec 11 PHP
php文件夹与文件目录操作函数介绍
Sep 09 PHP
php遍历目录与文件夹的多种方法详解
Nov 14 PHP
php 根据url自动生成缩略图并处理高并发问题
Jan 23 PHP
1亿条数据如何分表100张到Mysql数据库中(PHP)
Jul 29 PHP
ThinkPHP使用Smarty第三方插件方法小结
Mar 19 PHP
PHP 获取 ping 时间的实现方法
Sep 29 PHP
PHP框架实现WebSocket在线聊天通讯系统
Nov 21 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
Apr 06 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 magic_quotes_gpc的一点认识与分析
2008/08/18 PHP
CodeIgniter安全相关设置汇总
2014/07/03 PHP
PHP中使用imagick生成PSD文件缩略图教程
2015/01/26 PHP
PHP文件操作方法汇总
2015/07/01 PHP
PHP命名空间和自动加载类
2016/04/03 PHP
PHP数据库编程之MySQL优化策略概述
2017/08/16 PHP
redis+php实现微博(一)注册与登录功能详解
2019/09/23 PHP
php获取小程序码的实现代码(B类接口)
2020/06/13 PHP
showModelessDialog()使用详解
2006/09/21 Javascript
javascript入门·对象属性方法大总结
2007/10/01 Javascript
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
2010/05/15 Javascript
javascript的push使用指南
2014/12/05 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
ES6新特性一: let和const命令详解
2017/04/20 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
2018/08/27 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
2019/11/12 Javascript
vue data对象重新赋值无效(未更改)的解决方式
2020/07/24 Javascript
WebStorm无法正确识别Vue3组合式API的解决方案
2021/02/18 Vue.js
用Python实现通过哈希算法检测图片重复的教程
2015/04/02 Python
python 中的int()函数怎么用
2017/10/17 Python
python 数字类型和字符串类型的相互转换实例
2018/07/17 Python
Python使用jsonpath-rw模块处理Json对象操作示例
2018/07/31 Python
Python闭包和装饰器用法实例详解
2019/05/22 Python
python操作小程序云数据库实现简单的增删改查功能
2019/06/06 Python
python能做什么 python的含义
2019/10/12 Python
俄罗斯护发和专业化妆品购物网站:Hihair
2019/09/28 全球购物
Java面试中常遇到的问题,也是需要注意的几点
2013/08/30 面试题
函授毕业生自我鉴定
2013/11/06 职场文书
会计员岗位职责
2014/03/15 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
2015学校年度工作总结
2015/05/11 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
TV动画《八十龟酱观察日记》第四季宣传PV公布
2022/04/06 日漫
SpringBoot详解自定义Stater的应用
2022/07/15 Java/Android