php函数参数的数据类型的行为

时间:2019-07-17 10:17:18

标签: php

function addition(int $number1, int $number2): int
{
    return $number1 + $number2;
}

print('<pre>');
print_r(addition(2, "10"));
print('</pre>');

由于上述代码,它给了我12。但它应该给我一个错误。因为第二个参数应该是int。但是我通过了string。谁能告诉我在这里发生什么样的行为?

谢谢。

3 个答案:

答案 0 :(得分:4)

声明strict_types()。默认情况下,它是scalar type,不严格。另外strict_types()对您的代码有更多的控制权。

declare(strict_types=1);

function addition(int $number1, int $number2): int
{
    return $number1 + $number2;
}

答案 1 :(得分:1)

如果您使用的是PHP7,请添加以下内容:

declare(strict_types = 1);

在脚本的第一行,然后您将得到一个错误。 enter image description here

答案 2 :(得分:0)

PHP是一种松散类型的脚本语言,并且对变量类型及其性质没有限制。

$i = "10";

将被视为整数和字符串。

您可以通过搜索“为什么PHP松散键入?”进一步了解这种性质。