Annotation of embedaddon/php/Zend/tests/lsb_002.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: ZE2 Late Static Binding in an instance function
3: --FILE--
4: <?php
5:
6: class TestClass {
7: protected static $staticVar = 'TestClassStatic';
8: const CLASS_CONST = 'TestClassConst';
9:
10: protected static function staticFunction() {
11: return 'TestClassFunction';
12: }
13:
14: public function testStaticVar() {
15: return static::$staticVar;
16: }
17:
18: public function testClassConst() {
19: return static::CLASS_CONST;
20: }
21:
22: public function testStaticFunction() {
23: return static::staticFunction();
24: }
25: }
26:
27: class ChildClass1 extends TestClass {
28: protected static $staticVar = 'ChildClassStatic';
29: const CLASS_CONST = 'ChildClassConst';
30:
31: protected static function staticFunction() {
32: return 'ChildClassFunction';
33: }
34: }
35:
36: class ChildClass2 extends TestClass {}
37:
38: $testClass = new TestClass();
39: $childClass1 = new ChildClass1();
40: $childClass2 = new ChildClass2();
41:
42:
43: echo $testClass->testStaticVar() . "\n";
44: echo $testClass->testClassConst() . "\n";
45: echo $testClass->testStaticFunction() . "\n";
46:
47: echo $childClass1->testStaticVar() . "\n";
48: echo $childClass1->testClassConst() . "\n";
49: echo $childClass1->testStaticFunction() . "\n";
50:
51: echo $childClass2->testStaticVar() . "\n";
52: echo $childClass2->testClassConst() . "\n";
53: echo $childClass2->testStaticFunction() . "\n";
54: ?>
55: ==DONE==
56: --EXPECTF--
57: TestClassStatic
58: TestClassConst
59: TestClassFunction
60: ChildClassStatic
61: ChildClassConst
62: ChildClassFunction
63: TestClassStatic
64: TestClassConst
65: TestClassFunction
66: ==DONE==
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>