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

function addition(int $number1, int $number2): int

{

    return $number1 + $number2;

}


print('<pre>');

print_r(addition(2, "10"));

print('</pre>');

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


提前致谢。


慕森卡
浏览 171回答 3
3回答

呼啦一阵风

声明strict_types()。默认情况下,它scalar type不是严格的。还strict_types()可以更好地控制您的代码。declare(strict_types=1);function addition(int $number1, int $number2): int{&nbsp; &nbsp; return $number1 + $number2;}

海绵宝宝撒

如果您使用的是 PHP7,请添加以下内容:declare(strict_types&nbsp;=&nbsp;1);在脚本的第一行,然后你会得到一个错误。

ITMISS

PHP 是松散类型的脚本语言,对变量类型及其性质没有限制。$i&nbsp;=&nbsp;"10";将被视为整数和字符串。您可以通过搜索“为什么 PHP 是松散类型的?”来了解有关这种性质的更多信息。
打开App,查看更多内容
随时随地看视频慕课网APP