Annotation of embedaddon/php/tests/classes/type_hinting_001.phpt, revision 1.1
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
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>