刚刚发现类型提示 http://php.net/manual/en/language.oop5.typehinting.phpPHP 中允许,但不适用于整数、字符串、布尔值或浮点数。
为什么 PHP 不允许对整数、字符串等类型进行类型提示?
从 PHP 7.0 开始支持bool
, int
, float
and string
。添加了支持标量类型 RFC https://wiki.php.net/rfc/scalar_type_hints_v5。有两种模式:弱模式和严格模式。我建议阅读 RFC 以充分理解差异,但本质上类型转换仅发生在弱模式下。
鉴于此代码:
function mul2(int $x) {
return $x * 2;
}
mul2("1");
在弱模式(默认模式)下,这将转换"1"
to 1
.
要启用严格类型,请添加declare(strict_types=1);
到文件顶部。在严格模式下会发出错误:
致命错误:传递给 mul2() 的参数 1 必须是整数类型,给定字符串
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)