php類中的$this,static,const,self這幾個關鍵字使用方法


本篇文章主要分享一下關於php類中的$this,static,final,const,self這幾個關鍵字使用方法

$this

$this表示當前實例,在類的內部方法訪問未聲明為const及static的屬性時,使用$this->value='phpernote';的形式。常見用法如:$this->屬性,$this->方法

<?php
  /**
  * 有關人類
  */
  class Person
  {
    
    private $name='張三';
    public  $sex;
    public function run(){
      return $this->name.'能跑';
    }
    public function length(){
      echo $this->run().'800米';
    }
  }

  $person=new Person();
  $person->length();
?>

static

聲明及調用靜態變量如下:

  <?php
  /**
  * 示例
  */
  class Person
  {
    static  $sex=1;
    public  $name='張三';

    static function qianDao(){
      return self::$sex++;
    }

    static function printQianDao(){
      echo self::qianDao();
    }

    static function printQianDao2(){
      echo $this->qianDao();
    }

    static function printQianDao3(){
      echo $this->name;
    }

    public function printQianDao4(){
      echo $this->name;
    }

  }

  $person=new Person();
  $person->printQianDao();//輸出1
  Person::printQianDao(); //輸出2
  $person->printQianDao2();//報錯:Using $this when not in object context
  $person->printQianDao3();//報錯:Using $this when not in object context
  $person->printQianDao4();//輸出“張三”;
  Person::printQianDao4(); //報錯1:Non-static method Person::printQianDao4() should not be called statically,報錯2:Using $this when not in object context

?>

  

注意事項:

  1.在靜態方法內部,不能使用$this(即在靜態方法內部只能調用靜態成員);

  2.調用靜態成員的方法只能是self::方法名或者parent::方法名或者類名::方法名

  3.在類的外部,調用靜態方法時,可以不用實例化,直接類名::方法名

  4.靜態方法執行之后變量的值不會丟失,只會初始化一次,這個值對所有實例都是有效的

const

定義及調用類的常量如下:

  <?php
  /**
  * 示例
  */
  class Person
  {
    const PI=1;

    static function getPi(){
      return self::PI;
    }

    static function printPi(){
      echo self::getPi();
    }
  }
  Person::printPi();
?>
 

 

注意:調用類的成員是self::PI,而不是self::$PI

self

self表示類本身,指向當前的類。通常用來訪問類的靜態成員、方法和常量。

 


免責聲明!

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



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