码迷,mamicode.com
首页 > 其他好文 > 详细

self , static 都是何方神圣?

时间:2019-05-28 11:02:53      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:info   显示   区别   哪些   分析   内存   的区别   test   之间   

 

前言:

  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() , 里面使用了 selfstatic 来调用静态成员
  • 结果显示:  
    • static 调用的静态成员 $test 是 类b中定义的 即: class b
    • self 调用的静态成员 $test 是类a中定义的, 即   class a
    • 所以 self , 和 static 的区别在于继承的时候会显示出来     
  • 生活中的例子: 
    •   b : 儿子 ,a :  父亲  ,  $test :  遗产
    • 正常情况下, 儿子是会继承父亲的财富的,花父亲的钱, 这叫 self 
    • 儿子继承了父亲的财富,但是还是花自己上班赚来的钱,这叫 static 

 

self , static 都是何方神圣?

标签:info   显示   区别   哪些   分析   内存   的区别   test   之间   

原文地址:https://www.cnblogs.com/yinguohai/p/10935811.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!