diff options
Diffstat (limited to 'Zend')
-rw-r--r-- | Zend/tests/ns_070.phpt | 21 | ||||
-rw-r--r-- | Zend/tests/ns_071.phpt | 21 | ||||
-rw-r--r-- | Zend/tests/ns_072.phpt | 33 | ||||
-rw-r--r-- | Zend/tests/ns_073.phpt | 22 | ||||
-rw-r--r-- | Zend/tests/ns_074.phpt | 24 |
5 files changed, 121 insertions, 0 deletions
diff --git a/Zend/tests/ns_070.phpt b/Zend/tests/ns_070.phpt new file mode 100644 index 0000000000..850b82040c --- /dev/null +++ b/Zend/tests/ns_070.phpt @@ -0,0 +1,21 @@ +--TEST-- +Testing parameter type-hinted with default value inside namespace +--FILE-- +<?php + +namespace foo; + +class bar { + public function __construct(\stdclass $x = NULL) { + var_dump($x); + } +} + +new bar(new stdclass); +new bar(null); + +?> +--EXPECTF-- +object(stdClass)#%d (0) { +} +NULL diff --git a/Zend/tests/ns_071.phpt b/Zend/tests/ns_071.phpt new file mode 100644 index 0000000000..1fb266dc2d --- /dev/null +++ b/Zend/tests/ns_071.phpt @@ -0,0 +1,21 @@ +--TEST-- +Testing parameter type-hinted (array) with default value inside namespace +--FILE-- +<?php + +namespace foo; + +class bar { + public function __construct(array $x = NULL) { + var_dump($x); + } +} + +new bar(null); +new bar(new stdclass); + +?> +--EXPECTF-- +NULL + +Catchable fatal error: Argument 1 passed to foo::bar::__construct() must be an array, object given, called in %s on line %d and defined in %s on line %d diff --git a/Zend/tests/ns_072.phpt b/Zend/tests/ns_072.phpt new file mode 100644 index 0000000000..b6f89a2cf7 --- /dev/null +++ b/Zend/tests/ns_072.phpt @@ -0,0 +1,33 @@ +--TEST-- +Testing parameter type-hinted with interface +--FILE-- +<?php + +namespace foo; + +interface foo { + +} + +class bar { + public function __construct(foo $x = NULL) { + var_dump($x); + } +} + +class test implements foo { + +} + + +new bar(new test); +new bar(null); +new bar(new stdclass); + +?> +--EXPECTF-- +object(foo::test)#%d (0) { +} +NULL + +Catchable fatal error: Argument 1 passed to foo::bar::__construct() must implement interface foo::foo, instance of stdClass given, called in %s on line %d and defined in %s on line %d diff --git a/Zend/tests/ns_073.phpt b/Zend/tests/ns_073.phpt new file mode 100644 index 0000000000..4f37aa58b4 --- /dev/null +++ b/Zend/tests/ns_073.phpt @@ -0,0 +1,22 @@ +--TEST-- +Testing type-hinted lambda parameter inside namespace +--FILE-- +<?php + +namespace foo; + +$x = function (\stdclass $x = NULL) { + var_dump($x); +}; + +$x(NULL); +$x(new \stdclass); +$x(new stdclass); + +?> +--EXPECTF-- +NULL +object(stdClass)#%d (0) { +} +object(stdClass)#%d (0) { +} diff --git a/Zend/tests/ns_074.phpt b/Zend/tests/ns_074.phpt new file mode 100644 index 0000000000..5b15e3b42f --- /dev/null +++ b/Zend/tests/ns_074.phpt @@ -0,0 +1,24 @@ +--TEST-- +Testing type-hinted lambda parameter inside namespace +--FILE-- +<?php + +namespace foo; + +$x = function (\stdclass $x = NULL) { + var_dump($x); +}; + +class stdclass { } + +$x(NULL); +$x(new stdclass); +$x(new stdclass); + +?> +--EXPECTF-- +NULL +object(foo\stdClass)#%d (0) { +} +object(foo\stdClass)#%d (0) { +} |