Annotation of embedaddon/php/Zend/tests/traits/inheritance003.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Trait method overrides base class method and satisfies prototype
! 3: --FILE--
! 4: <?php
! 5: error_reporting(E_ALL);
! 6:
! 7: abstract class Base {
! 8: public abstract function sayHello(array $a);
! 9: }
! 10:
! 11: class SubClass extends Base {
! 12: public function sayHello(array $a) {
! 13: echo "World!\n";
! 14: }
! 15: }
! 16:
! 17: $s = new SubClass();
! 18: $s->sayHello(array());
! 19:
! 20:
! 21: trait SayWorld {
! 22: public function sayHello(Base $d) {
! 23: echo 'World!';
! 24: }
! 25: }
! 26:
! 27: class MyHelloWorld extends Base {
! 28: use SayWorld;
! 29: }
! 30:
! 31: $o = new MyHelloWorld();
! 32: $o->sayHello(array());
! 33:
! 34: ?>
! 35: --EXPECTF--
! 36: World!
! 37:
! 38: Fatal error: Declaration of MyHelloWorld::sayHello() must be compatible with Base::sayHello(array $a) in %s on line %d
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>