xref: /php-src/Zend/tests/namespaces/ns_072.phpt (revision 275f63e7)
1--TEST--
2Testing parameter type-hinted with interface
3--FILE--
4<?php
5
6namespace foo;
7
8interface foo {
9
10}
11
12class bar {
13    public function __construct(?foo $x = NULL) {
14        var_dump($x);
15    }
16}
17
18class test implements foo {
19
20}
21
22
23new bar(new test);
24new bar(null);
25new bar(new \stdclass);
26
27?>
28--EXPECTF--
29object(foo\test)#%d (0) {
30}
31NULL
32
33Fatal error: Uncaught TypeError: foo\bar::__construct(): Argument #1 ($x) must be of type ?foo\foo, stdClass given, called in %s:%d
34Stack trace:
35#0 %s(%d): foo\bar->__construct(Object(stdClass))
36#1 {main}
37  thrown in %s on line %d
38