this,self::,static::的區別


self::

  代表當前類,可訪問類內靜態屬性、靜態方法、非靜態方法和常量。但不能訪問非靜態屬性

  訪問方式:self::[靜態屬性|靜態方法|非靜態方法|常量],如self::$a      (self不帶$,變量帶$)

this

  代表當前類對象,不可訪問類內靜態屬性、靜態方法和常量。

  訪問方式:$this->[變量|方法],如$this->a  (this帶$,變量不帶$)

  

static::

  與self::相比,self::代表調用的方法是對象被實現的類(子類),而static::調用的是基類(父類)

<?php
  class Person{
    public static function name(){
      echo '父類'.'<br>';
    }
    public static function callself(){
      self::name();
    }
    public static function callstatic(){
      static::name();
    }
  }

  class Man extends Person{
    public static function name(){
      echo '子類'.'<br>';
    }
  }
  
  Man::callself();  // 父類
  Man::callstatic(); // 子類

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM