我最近开始研究在PHP 7中引入的新类型提示,并发现添加到我的一些应用程序是一个非常好的和有用的添加因此我已经去了但是我有一个问题关于论证和回归类型暗示。
所以说我有一个基本函数,它在两个参数上执行数学并返回一个整数。
function addTwo(int $a, int $b): int {
return $a + $b;
}
期望的参数应该是整数,我们应该希望从函数中接收一个整数值,但是这总是得到保证,还是应该在函数中进行进一步的验证,比如is_int,以确保两个参数都是整数?
答案 0 :(得分:3)
这取决于条件。例如,在你的例子中传输行不会成功,但是传递float - 没问题,它会被静默地转换为int。
你必须写declare(strict_types = 1);
strict_types = 1只能应用于在第一行直接声明它的文件,不能解决这个问题。
严格键入也会对返回类型声明产生影响。在里面 默认弱模式,返回值将被强制转换为正确的类型 如果他们不是那种类型。在强模式下,返回 value必须是正确的类型,否则将是TypeError 抛出。