Annotation of embedaddon/php/Zend/tests/lsb_015.phpt, revision 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>