gpt4 book ai didi

php - PHP 中的严格类型会影响变量吗?

转载 作者:行者123 更新时间:2023-12-04 15:21:14 24 4
gpt4 key购买 nike

我知道在使用 declare(strict_types=1) 时我必须传递给定类型的参数,否则会引发 Exception,但有一个问题:

declare(strict_types=1);

function add(int $firstNumber, int $secondNumber)
{
$firstNumber = "example";

return $firstNumber . " " . $secondNumber;
}

我的问题是,如果声明了 int,为什么我可以将 $firstNumber 的类型更改为 string

例如,在 Java 中,我不能那样进行转换。参数类型 int 必须保持 int 否则代码甚至无法编译。

最佳答案

这是因为您严格键入函数的输入,而不是函数本身的返回值或任何变量。来自docs -

Strict typing applies to function calls made from within the file with strict typing enabled, not to the functions declared...

所以你调用一个非整数的函数:

add('example',2);

将返回您期望的错误 -

Fatal error: Uncaught TypeError: Argument 1 passed to add() must be of the type int, string given, called in...

但是向您的函数发送整数将允许函数调用继续进行,并且其中的变量将类型化。

关于php - PHP 中的严格类型会影响变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63265819/

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