Annotation of embedaddon/php/Zend/tests/traits/bug55214.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Bug #55214 (Use of __CLASS__ within trait returns trait name not class name)
                      3: --FILE--
                      4: <?php
                      5: 
                      6: trait ATrait {
                      7:   public static $static_var = __CLASS__;
                      8:   public $var = __CLASS__;
                      9: 
                     10:   public static function get_class_name() {
                     11:     return __CLASS__;
                     12:   }
                     13:   
                     14:   public function get_class_name_obj() {
                     15:     return __CLASS__;
                     16:   }
                     17: 
                     18:   public static function get_class_name2() {
                     19:     return self::$static_var;
                     20:   }
                     21:   
                     22:   public function get_class_name_obj2() {
                     23:     return $this->var;
                     24:   }
                     25: }
                     26: 
                     27: trait Indirect {
                     28:        use ATrait;
                     29: }
                     30: 
                     31: class SomeClass {
                     32:    use ATrait;
                     33: }
                     34: 
                     35: class UsingIndirect {
                     36:        use Indirect;
                     37: }
                     38: 
                     39: $r = SomeClass::get_class_name();
                     40: var_dump($r);
                     41: $r = SomeClass::get_class_name2();
                     42: var_dump($r);
                     43: 
                     44: $o = new SomeClass();
                     45: $r = $o->get_class_name_obj();
                     46: var_dump($r);
                     47: $r = $o->get_class_name_obj2();
                     48: var_dump($r);
                     49: 
                     50: $r = UsingIndirect::get_class_name();
                     51: var_dump($r);
                     52: $r = UsingIndirect::get_class_name2();
                     53: var_dump($r);
                     54: 
                     55: $o = new UsingIndirect();
                     56: $r = $o->get_class_name_obj();
                     57: var_dump($r);
                     58: $r = $o->get_class_name_obj2();
                     59: var_dump($r);
                     60: 
                     61: 
                     62: ?>
                     63: --EXPECT--
                     64: string(9) "SomeClass"
                     65: string(9) "SomeClass"
                     66: string(9) "SomeClass"
                     67: string(9) "SomeClass"
                     68: string(13) "UsingIndirect"
                     69: string(13) "UsingIndirect"
                     70: string(13) "UsingIndirect"
                     71: string(13) "UsingIndirect"

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>