diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-03-14 05:42:27 +0000 |
---|---|---|
committer | <> | 2013-04-03 16:25:08 +0000 |
commit | c4dd7a1a684490673e25aaf4fabec5df138854c4 (patch) | |
tree | 4d57c44caae4480efff02b90b9be86f44bf25409 /Zend/tests/traits/inheritance003.phpt | |
download | php2-master.tar.gz |
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'Zend/tests/traits/inheritance003.phpt')
-rw-r--r-- | Zend/tests/traits/inheritance003.phpt | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Zend/tests/traits/inheritance003.phpt b/Zend/tests/traits/inheritance003.phpt new file mode 100644 index 0000000..22ff6e2 --- /dev/null +++ b/Zend/tests/traits/inheritance003.phpt @@ -0,0 +1,38 @@ +--TEST-- +Trait method overrides base class method and satisfies prototype +--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! + +Fatal error: Declaration of SayWorld::sayHello(Base $d) must be compatible with Base::sayHello(array $a) in %s on line %d |