Arhive categorie: PHP

Diferenta intre self si static

M-am lovit de problema asta la un interviu si nu stiam ca „static” a fost introdus in PHP 5.3.0. In principiu fac aceeasi chestie, dar in anumite cazuri returneaza altceva si voi demonstra cu un exemplu simplu:

<?php

class A {
   const letter = A;

   public static function hello() {
     echo  __CLASS__;
   }

    public static function getSelf() {
        return self::hello();
    }

    public static function getStatic() {
        return static::hello();
    }
}

class B extends A {

  public static function hello() {
   echo __CLASS__;
  }

}

echo B::getSelf();    // A
echo B::getStatic();  // B

?>
Reclame