Se estendo una classe statica in PHP, e la classe padre si riferisce a “self ::”, sarà questo riferimento al sé nella classe estesa?

StackOverflow https://stackoverflow.com/questions/3723217

  •  03-10-2019
  •  | 
  •  

Domanda

Se estendo una classe statica in PHP, e la classe padre si riferisce a "self ::", sarà questo riferimento al sé nella classe estesa?

Quindi, per esempio

<?php 
Class A
{
    static $var  
    public static function guess(){self::$var = rand(); return $var}
}        

Class B extends Class A
{
    public static function getVar(){return self::$var}
}

Se ho eseguito B :: congettura (); poi B :: getVar ();

è il rapporto qualità-Var memorizzato in A :: $ var o B :: $ var?

Grazie.

È stato utile?

Soluzione

E 'facile prova:

class ClassA {
    public static function test(){ self::getVar(); }
    public static function getVar(){ echo 'A'; }
}        

class ClassB extends ClassA {
    public static function getVar(){ echo 'B'; }
}

ClassA::test(); // prints 'A'

ClassB::test(); // also prints 'A'

... speranza che aiuta:)

Altri suggerimenti

tardo statica vincolante è stato introdotto in PHP 5.3 , che permette di controllare questo comportamento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top