2010-09-16 19 views
1

Si j'étire une classe statique en PHP, et que la classe parente fait référence à "self ::", cela se référera-t-il au self dans la classe étendue?Si j'étire une classe statique en PHP, et que la classe parent fait référence à "self ::", est-ce que cela se référera à soi dans la classe étendue?

Ainsi, par exemple

<?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} 
} 

Si je courais B :: deviner(); puis B :: getVar();

est la valeur de Var stockée dans A :: $ var ou B :: $ var?

Merci.

Répondre

3

Il est facile à tester:

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' 

... l'espoir qui aide :)