我有点难以接受标量类型提示问题(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
< PHP
声明(strict_types = 1);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。