zoukankan      html  css  js  c++  java
  • 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() , 里面使用了 selfstatic 来调用静态成员
    • 结果显示:  
      • static 调用的静态成员 $test 是 类b中定义的 即: class b
      • self 调用的静态成员 $test 是类a中定义的, 即   class a
      • 所以 self , 和 static 的区别在于继承的时候会显示出来     
    • 生活中的例子: 
      •   b : 儿子 ,a :  父亲  ,  $test :  遗产
      • 正常情况下, 儿子是会继承父亲的财富的,花父亲的钱, 这叫 self 
      • 儿子继承了父亲的财富,但是还是花自己上班赚来的钱,这叫 static 
  • 相关阅读:
    Shell脚本 --- 正则表达式和文本处理工具
    python的eval、exec函数
    内置函数 Built-in Functions
    关于Python中的lambda
    Python中*args和**kwargs的区别
    Python基础-10-文件操作
    Python基础-09-内置函数
    Python基础-08-函数
    Python基础-07-集合
    Python基础-06-字典
  • 原文地址:https://www.cnblogs.com/yinguohai/p/10935811.html
Copyright © 2011-2022 走看看