Return to type_hinting_001.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / tests / classes |
1.1 ! misho 1: --TEST-- ! 2: ZE2 class type hinting ! 3: --SKIPIF-- ! 4: <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> ! 5: --FILE-- ! 6: <?php ! 7: ! 8: interface Foo { ! 9: function a(Foo $foo); ! 10: } ! 11: ! 12: interface Bar { ! 13: function b(Bar $bar); ! 14: } ! 15: ! 16: class FooBar implements Foo, Bar { ! 17: function a(Foo $foo) { ! 18: // ... ! 19: } ! 20: ! 21: function b(Bar $bar) { ! 22: // ... ! 23: } ! 24: } ! 25: ! 26: class Blort { ! 27: } ! 28: ! 29: $a = new FooBar; ! 30: $b = new Blort; ! 31: ! 32: $a->a($b); ! 33: $a->b($b); ! 34: ! 35: ?> ! 36: --EXPECTF-- ! 37: ! 38: Catchable fatal error: Argument 1 passed to FooBar::a() must implement interface Foo, instance of Blort given, called in %s on line 27 and defined in %s on line 12