Bug #75345 [Opn->Wfx]: Strict type declarations not enforced for Reflection API invocation
| From: | nikic@php.net | Date: | Mon, 02 Jul 2018 18:22:59 +0000 |
| Subject: | Bug #75345 [Opn->Wfx]: Strict type declarations not enforced for Reflection API invocation | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-216078@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=75345&edit=1
ID: 75345
Updated by: nikic@php.net
Reported by: sebastian@php.net
Summary: Strict type declarations not enforced for Reflection
API invocation
-Status: Open
+Status: Wont fix
Type: Bug
Package: Reflection related
Operating System: Irrelevant
PHP Version: Irrelevant
Block user comment: N
Private report: N
New Comment:
This has been discussed on the internals list in https://externals.io/message/100851, and the
decision was not change this behavior.
Previous Comments:
------------------------------------------------------------------------
[2017-10-09 14:42:03] sebastian@php.net
Description:
------------
Strict type declarations are not enforced when a function or method is invoked via the Reflection
API.
The test script generates the same result with PHP 7.0.25-dev
(f48abfa9022c026c2447b14bc03c978d2b831b27), 7.1.11-dev (d8881f4eb4ec138db00d5fcf0b27a64f8986cd85),
PHP 7.2.0-dev (611d117b24b58544ef69390cfe44166ba606b0ab), and PHP 7.3.0-dev
(39ded1d5f85ca3358cc8a52bb37e72a5eb5ce0db).
Test script:
---------------
<?php
declare(strict_types=1);
function f(bool $a)
{
var_dump($a);
}
$f = new ReflectionFunction('f');
$f->invokeArgs([1]); // or $f->invoke(1);
Expected result:
----------------
TypeError exception because int(1) does not match bool.
Actual result:
--------------
bool(true)
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=75345&edit=1