2010-04-15 21:39:20 +00:00
|
|
|
--TEST--
|
2011-11-01 15:25:24 +00:00
|
|
|
Trait method overrides base class method and satisfies prototype
|
2010-04-15 21:39:20 +00:00
|
|
|
--FILE--
|
|
|
|
<?php
|
|
|
|
error_reporting(E_ALL);
|
|
|
|
|
|
|
|
abstract class Base {
|
|
|
|
public abstract function sayHello(array $a);
|
|
|
|
}
|
|
|
|
|
|
|
|
class SubClass extends Base {
|
|
|
|
public function sayHello(array $a) {
|
|
|
|
echo "World!\n";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$s = new SubClass();
|
|
|
|
$s->sayHello(array());
|
|
|
|
|
|
|
|
|
|
|
|
trait SayWorld {
|
|
|
|
public function sayHello(Base $d) {
|
|
|
|
echo 'World!';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
class MyHelloWorld extends Base {
|
|
|
|
use SayWorld;
|
|
|
|
}
|
|
|
|
|
|
|
|
$o = new MyHelloWorld();
|
|
|
|
$o->sayHello(array());
|
|
|
|
|
|
|
|
?>
|
|
|
|
--EXPECTF--
|
|
|
|
World!
|
|
|
|
|
2012-12-25 06:23:08 +00:00
|
|
|
Fatal error: Declaration of SayWorld::sayHello(Base $d) must be compatible with Base::sayHello(array $a) in %s on line %d
|