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>