PHP 7 Bool类型提示不起作用

我有点难以接受标量类型提示问题(PHP7应该能够处理).基本上,我创建一个bool类型提示方法只允许布尔值传递.然而它失败了,并让其他类型的字符串传递.我相信过去这对我有用.以该片段为例.第一个转储结果为false(这是有道理的,因为’test’是一个字符串),第二个转储结果为true,这对我没有意义.我希望触发PHP错误,因为该类型不是布尔值.有什么想法吗?

<?PHP
class Test{
    function something(bool $test){
       var_dump($test); // "Second dump"
    }
}

$value = 'test';
var_dump(is_bool($value)); // "First dump"
$test = new Test;
$test->something($value);

结果:

bool(false) 
bool(true)

解决方法:

您必须在文件中声明严格键入[1]以强制PHP不执行类型强制[2].

[1] – http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration.strict

[2] – “认情况下,如果可能,PHP会将错误类型的值强制转换为预期的标量类型.”

PHP
&LT PHP
声明(strict_types = 1);

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...