PHP的类型提示备忘录
PHP7发布以来,由于增加了类型提示(类型声明),我开始不清楚它是什么时候添加的,所以我做了笔记。
只需要一种选择,请用中文释义以下内容:“能够在函数参数中进行类型提示的功能。”
我几乎完全按照文件上所写的内容带过来了。
型利用可能になるバージョンクラス/インターフェース名5.0.0self5.0.0array5.1.0callable5.4.0bool7.0.0float7.0.0int7.0.0string7.0.0iterable7.1.0object7.2.0
返回值中可写类型提示(7及以后版本)
自 PHP7 开始,可以在返回值中添加类型提示。基本上和函数的类型提示一样。
function test(): int
另外,从PHP7.1开始也支持void类型。
function test(): void
强制强类型化(从7开始)。
默认情况下,允许松散类型转换,尽可能将其转换为该类型。(仅适用于标量类型)
要实现强类型化,需要写上declare(strict_types=1);。
如果类型不匹配,则抛出TypeError。
我想使用类型提示,但也希望它可以是可空的。
如果PHP版本低于7.1,则在参数的默认值中指定null将起作用(严格来说只是有类似的功能)。
function test(int $number = null)
从PHP7.1开始,在类型之前加上了一个?。此外,这也可以用于指定返回值的类型。
function test(?int $number)
从7.1开始引入的可迭代对象
iterable是从7.1版本开始引入的伪类型。只要是实现了array或者Traversable(可通过foreach循环遍历)的对象,都可以作为可迭代的对象接受。
额外收费
从7.1版本开始,可以为类常量指定访问修饰符。
之前,无法为类常量添加访问修饰符(如public等),但从7.1版本开始,可以实现这一点。
class Sample {
public const $test;