前几篇文章说了,parent、self、static关键字的使用,parent可以访问父类的静态方法和静态变量,self和static可以访问本类的静态成员等等,但实际上他们还有其他作用,来看一下:

 class BaseClass {
public function test() {
echo "BaseClass::test() called";
} public function moreTesting() {
echo "BaseClass::moreTesting() called";
}
} class ChildClass extends BaseClass {
private static $sValue = "static value";
const CONST_VALUE = 'A constant value';
public function moreTesting() {
echo "ChildClass::moreTesting() called";
parent::moreTesting();
self::called();
echo "CONST_VALUE: " . self::CONST_VALUE;
echo "sValue: " . static::$sValue;
}
public function called(){
echo "ChildClass::called() called";
}
}

先看parent关键字,它除了可以访问父类中的静态方法之外,它还可以用来访问被重写了的父类中的方法,比如方法moreTesting已经在类ChildClass中被重写,那么我偏偏需要访问父类中没被重写的方法怎么办,就用parent关键字

再来看self关键字,他除了可以访问本类中的静态成员之外,还可以用来访问本类中的方法,就是说一般的方法也可以访问,功能和$this->called();相同,但是注意不能用来访问本类的成员属性,也就是不能访问一般的变量,非静态变量只能用$this来访问,还有一点const用来定义常量,和define()方法差不多,常量一般用大写字母,并且不需要加$符号,常量一旦赋值将无法进行改变,代码中用self::CONST_VALUE来访问常量

最后是static关键字,她没有其他特殊的功能,和前面一样只能访问自身类中的静态成员

看来self关键字的功能要多于static关键字

最新文章

  1. Activity生命周期
  2. Git分布式版本控制系统学习笔记
  3. 添加删除一个controller
  4. Out of Hay
  5. Java 授权内幕--转载
  6. 【Lucene4.8教程之三】搜索
  7. 王立平--string.Empty
  8. OC中的野指针,空指针,nil,Nil,NULL,NSNULL小结
  9. 【php】RBAC 管理权限
  10. Nginx geo模块
  11. mysql服务器没有响应
  12. container and Injection
  13. hbase-基础架构
  14. 查看Python的版本、内建方法和模块等内容的方法
  15. 赋值操作符、复制构造函数、析构函数、static成员练习
  16. CF1142E/1143B Lynyrd Skynyrd
  17. innerHTML与jquery里的html()区别介绍
  18. POJ 1118
  19. HDUOJ---三角形(组合数学)
  20. MongoDB复制集与Raft协议异同点分析

热门文章

  1. Cocos2d-X3.0 刨根问底(八)----- 场景(Scene)、层(Layer)相关源码分析
  2. href="javascript:void(0)"
  3. 【poj3714】 Raid
  4. 【poj2186】 Popular Cows
  5. POJ1941 The Sierpinski Fractal
  6. c3p0配置详解
  7. 转 vagrant package[打包命令]详解
  8. 15个Linux Wget下载实例终极指南
  9. 改变字典内的value
  10. spring mvc实现登录+异常