变量
类型检查
一些关于变量和类型的文档提到 PHP 不使用静态类型。这是正确的,但是当涉及到函数/方法参数和返回值时,PHP 会进行一些类型检查(特别是使用 PHP 7)。
你可以通过在 PHP 7 中使用类型提示来强制执行参数和返回值类型检查,如下所示:
<?php
/**
* Juggle numbers and return true if juggling was
* a great success.
*/
function numberJuggling(int $a, int $b) : bool
{
$sum = $a + $b;
return $sum % 2 === 0;
}
注: PHP 的
gettype()
的整数和布尔值分别是integer
和boolean
。但是对于这些变量的类型提示,你需要使用int
和bool
。否则 PHP 不会给你一个语法错误,但它会期望传递integer
和boolean
类。
上面的示例抛出一个错误,如果非数字值被赋予 $a
或 $b
参数,并且该函数返回的内容不是 true
或 false
。上面的例子是松散的,因为你可以给 $a
或 $b
一个浮动值。如果你希望强制执行严格类型,这意味着你只能输入整数而不是浮点数,请将以下内容添加到 PHP 文件的最开头:
<?php
declare('strict_types=1');
在 PHP 7 之前,函数和方法允许对以下类型进行类型提示:
callable
(可调用的函数或方法)array
(任何类型的数组,也可以包含其他数组)- 接口(完全限定类名称或 FQDN)
- 类(FQDN)
另请参阅: 输出变量的值