zoukankan      html  css  js  c++  java
  • 关于php中数据访问的几点补充

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

     1 class BaseClass {
     2    public function test() {
     3        echo "BaseClass::test() called";
     4    }
     5    
     6    public function moreTesting() {
     7        echo "BaseClass::moreTesting() called";
     8    }
     9 }
    10 
    11 class ChildClass extends BaseClass {
    12   private static $sValue = "static value";
    13   const CONST_VALUE = 'A constant value';
    14   public function moreTesting() {
    15        echo "ChildClass::moreTesting() called";
    16        parent::moreTesting();
    17        self::called();
    18        echo "CONST_VALUE: " . self::CONST_VALUE;
    19        echo "sValue: " . static::$sValue;
    20   }
    21   public function called(){
    22     echo "ChildClass::called() called";
    23   }
    24  }

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

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

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

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

  • 相关阅读:
    AutoFac学习笔记
    AutoMapper学习笔记
    ROSLYN 查看C#方法执行次数
    log4net 动态创建文件名
    WPF可切换按钮,iOS风格
    咕咕咕
    贪吃的小J
    UK Day15
    UK Day15
    UK Day15
  • 原文地址:https://www.cnblogs.com/freeweb/p/4639090.html
Copyright © 2011-2022 走看看