self , static 都是何方神圣?
Posted yinguohai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了self , static 都是何方神圣?相关的知识,希望对你有一定的参考价值。
前言:
php中 this 用于代指 对象, 而代指类的却有3个:self , static , parent
self , static , parrent 既然都能代指类,那么他们之间又有哪些区别呢?
- self , static : 代指 自身类
- parent : 代指 父类
self , static 又有何区别?
问题来了,既然self , static 都代指自身,那么php为嘛要搞出两个东东来代指自身呢?
官方解释:
self : 调用自身代码段的静态成员,
static : 调用的是从内存的堆 中拿出此类的静态成员
好懵逼的样子对不对?每关系,大海君给你讲个例子就明白了。
Usage Example 1:
分析:
- 类b中和类a 中都有一个静态属性 $test
- 类a 中 有一个方法 static_test() , 里面使用了 self, static 来调用静态成员 结果显示:
- static 调用的静态成员 $test 是 类b中定义的 即: class b
- self 调用的静态成员 $test 是类a中定义的, 即 class a
- 所以 self , 和 static 的区别在于继承的时候会显示出来
- 生活中的例子:
- b : 儿子 ,a : 父亲 , $test : 遗产
- 正常情况下, 儿子是会继承父亲的财富的,花父亲的钱, 这叫 self
- 儿子继承了父亲的财富,但是还是花自己上班赚来的钱,这叫 static
以上是关于self , static 都是何方神圣?的主要内容,如果未能解决你的问题,请参考以下文章
RecyclerView 是 “何方神圣“?为什么选择它呢?