Annotation of embedaddon/php/Zend/tests/traits/inheritance003.phpt, revision 1.1.1.2
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:
1.1.1.2 ! misho 38: Fatal error: Declaration of SayWorld::sayHello(Base $d) must be compatible with Base::sayHello(array $a) in %s on line %d
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>