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>