123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- --TEST--
- ZE2 Late Static Binding with exceptions
- --FILE--
- <?php
- function foo() {
- B::throwException();
- }
- class C {
- public static function bla() {
- B::throwException();
- }
- public static function getException() {
- return new Exception();
- }
- }
- class A {
- public static function throwException_after() {
- C::bla();
- }
- public static function throwException() {
- throw C::getException();
- }
- public static function test() {
- static::who();
- }
- public static function who() {
- echo "A\n";
- }
- public static function mycatch() {
- try {
- static::who();
- B::throwException_after();
- } catch(Exception $e) {
- static::who();
- A::test();
- static::who();
- B::test();
- static::who();
- self::simpleCatch();
- static::who();
- }
- }
- public static function simpleCatch() {
- try {
- static::who();
- throw new Exception();
- } catch (Exception $e) {
- static::who();
- }
- }
- }
- class B extends A {
- public static function who() {
- echo "B\n";
- }
- }
- echo "via A:\n";
- A::myCatch();
- echo "via B:\n";
- B::myCatch();
- ?>
- --EXPECT--
- via A:
- A
- A
- A
- A
- B
- A
- A
- A
- A
- via B:
- B
- B
- A
- B
- B
- B
- B
- B
- B
|