微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐