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>