gpt4 book ai didi

PHP 7 Bool 类型提示不工作

转载 作者:可可西里 更新时间:2023-11-01 00:39:51 25 4
gpt4 key购买 nike

我对标量类型提示问题(PHP7 应该能够处理)感到有点困惑。基本上,我创建了一个带有 bool 类型提示的方法,只允许传递 bool 值。但是它失败了,并让其他类型(如字符串)通过。我相信过去这对我有用。以代码段为例。第一个转储结果为 false(这是有道理的,因为 'test' 是一个字符串),第二个转储结果为 true 而不是对我来说有意义。我希望触发 PHP 错误,因为类型不是 bool 值。有什么想法吗?

<?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
declare(strict_types=1);

关于PHP 7 Bool 类型提示不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46429089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com