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

?>
Anunțuri

Lasă un răspuns

Completează mai jos detaliile tale sau dă clic pe un icon pentru a te autentifica:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare / Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare / Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare / Schimbă )

Fotografie Google+

Comentezi folosind contul tău Google+. Dezautentificare / Schimbă )

Conectare la %s