参考:

http://www.cnblogs.com/devcjq/articles/2424738.html

http://www.cnblogs.com/alsf/p/9621002.html

https://blog.csdn.net/xf552527/article/details/81325815

1.PHP之parent解析

parent是指向父类的指针,一般用于调用父类的构造函数来初始化子类,如parent::__construct()

2.PHP之$this解析

$this是指向当前对象(即类的实例化对象)的指针
  • $this 指向的是实际调用时的对象,也就是说,实际运行过程中,谁调用了类的属性或方法,$this 指向的就是哪个对象。
  • $this 不能访问类的静态属性和常量,且 $this 不能存在于静态方法中,因为静态变量和静态方法是属于类的,而非属于类实例化后的对象。
  • 如果要在静态方法中,强制使用类的其他方法,则只能先获取类的实例化对象(new classname()),然后再使用该对象的方法。
  • 当一个方法在类定义内部被调用时,有一个可用的伪变量 $this。$this 是一个到主叫对象的引用(通常是该方法所从属的对象)。

3.PHP之self解析

self是指向当前类的指针,而非实例化后的对象指针
  • self 和 __CLASS__,都是对当前类的静态引用,取决于定义当前方法所在的类。即self 写在哪个类里面,它引用的就是谁。
  • 由于静态变量和静态方法是属于类的,因此可以使用指向当前类的指针self调用。
  • self 可以用于访问类的静态属性、静态方法和常量,但 self 指向的是当前定义所在的类,这是 self 的限制

4.PHP之static解析

static是指向当前调用类的指针
  • 静态调用时,static 指向的是实际调用时的类;非静态调用时,static 指向的是实际调用时的对象所属的类。
  • static 可以用于静态或非静态方法中,也可以访问类的静态属性、静态方法、常量和非静态方法,但不能访问非静态属性。
  • static 关键字除了可以声明类的静态成员(属性和方法)外,还有一个非常重要的作用就是后期静态绑定
<?php 

  class Boo {

      protected static $str = "This is class Boo";

      public static function get_info(){

          echo get_called_class()."\n";
echo self::$str;
} public static function get_msg(){
echo get_class()."\n";
echo static::$str;
}
} class Foo extends Boo{ protected static $str = "This is class Foo"; } Foo::get_info();
echo "\n";
Foo::get_msg(); ?> //输出结果
Foo
This is class Boo
Boo
This is class Foo

最新文章

  1. LINQ to SQL语句(15)之String
  2. Selenium 功能总结大集合
  3. Request和Response对象
  4. unity
  5. Mars的自语重出江湖,祝大家端午节安康
  6. Javascript输出表格
  7. locality
  8. mysql中字符集和校对规则
  9. windows下配置nodejs+npm
  10. Android(java)学习笔记69:JDK5之后的Lock锁的概述和使用
  11. Codeforces Round #313 A Currency System in Geraldion
  12. 从字符串拼接看JS优化原则
  13. JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】
  14. 2017总结&amp;2018展望
  15. 2D-2D:对极几何 基础矩阵F 本质矩阵E 单应矩阵H
  16. 通过企业微信API接口发送消息
  17. Android:困扰了我一个晚上的问题 Failed to resolve: com.android.support:recyclerview-v7.25.3.1
  18. mysql报错:1130 -host 'localhost' is not allowed to connect to this mysql server
  19. kali安装搜狗输入法
  20. Swift5 语言参考(八) 模式

热门文章

  1. Fiddler如何捕捉DefaultHttpClient的HTTP请求
  2. NIO相关概念之Selector
  3. D - Brave Game
  4. 在浏览器中输入 www.baidu.com 后执行的全部过程
  5. freemarker 中可以直接使用的内置对象
  6. ABP之展现层(导航菜单)
  7. CCPC-Wannafly Winter Camp Day4 G---置置置换【递推】【组合数】【逆元】
  8. gensim Word2Vec 训练和使用(Model一定要加载到内存中,节省时间!!!)
  9. 若父设置了overflow: hidden;子如何不受影响
  10. 2018中国大学生程序设计竞赛 - 网络选拔赛 Dream hdu6440 Dream 给出一个(流氓)构造法