--- /dev/null
+--TEST--
+Different numbers of arguments in __construct()
+--FILE--
+<?php
+interface foobar {
+ function __construct();
+}
+abstract class bar implements foobar {
+ public function __construct($x = 1) {
+ }
+}
+final class foo extends bar implements foobar {
+ public function __construct($x = 1, $y = 2) {
+ }
+}
+new foo;
+print "ok!";
+?>
+--EXPECT--
+ok!
--- /dev/null
+--TEST--
+Inherited constant from interface
+--FILE--
+<?php
+interface foo {
+ const foo = 'foobar';
+ public function bar($x = foo);
+}
+
+class foobar implements foo {
+ const foo = 'bar';
+ public function bar($x = foo::foo) {
+ var_dump($x);
+ }
+}
+?>
+--EXPECTF--
+Fatal error: Cannot inherit previously-inherited constant foo from interface foo in %s on line %d
--- /dev/null
+--TEST--
+Namespace constant as value default
+--FILE--
+<?php
+
+namespace foo;
+
+error_reporting(E_ALL);
+
+interface foo {
+ const foo = 2;
+}
+
+function foo($x = foo::foo::foo) {
+ var_dump($x);
+}
+
+foo();
+?>
+--EXPECT--
+int(2)