我有点难以接受标量类型提示问题(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