Annotation of embedaddon/php/Zend/tests/lsb_015.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: ZE2 Late Static Binding with exceptions
3: --FILE--
4: <?php
5: function foo() {
6: B::throwException();
7: }
8: class C {
9: public static function bla() {
10: B::throwException();
11: }
12: public static function getException() {
13: return new Exception();
14:
15: }
16: }
17: class A {
18:
19: public static function throwException_after() {
20: C::bla();
21: }
22: public static function throwException() {
23: throw C::getException();
24: }
25: public static function test() {
26: static::who();
27: }
28: public static function who() {
29: echo "A\n";
30: }
31:
32: public static function mycatch() {
33: try {
34: static::who();
35: B::throwException_after();
36: } catch(Exception $e) {
37: static::who();
38: A::test();
39: static::who();
40: B::test();
41: static::who();
42:
43: self::simpleCatch();
44: static::who();
45: }
46: }
47:
48: public static function simpleCatch() {
49: try {
50: static::who();
51: throw new Exception();
52: } catch (Exception $e) {
53: static::who();
54: }
55: }
56: }
57:
58: class B extends A {
59: public static function who() {
60: echo "B\n";
61: }
62:
63: }
64:
65: echo "via A:\n";
66: A::myCatch();
67: echo "via B:\n";
68: B::myCatch();
69: ?>
70: ==DONE==
71: --EXPECTF--
72: via A:
73: A
74: A
75: A
76: A
77: B
78: A
79: A
80: A
81: A
82: via B:
83: B
84: B
85: A
86: B
87: B
88: B
89: B
90: B
91: B
92: ==DONE==
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>