PHP语言中?array语法代表什么含义?
?类型前缀语法含义说明
你看到的代码属于PHP语法,?array是PHP 7.1及以上版本支持的可空类型声明语法,具体作用如下:
- 前缀问号表示对应的属性、函数参数或函数返回值,除了可以是声明的指定类型值外,还允许取值为
null - 你给出的示例
private static ?array $labels = null;,就表示$labels这个静态属性既可以存储数组类型的值,也可以赋值为null,代码里直接给了默认值null是符合类型要求的。
如果去掉问号直接写
private static array $labels = null;,运行时会抛出类型错误,因为非可空的array类型声明不允许赋值null,必须传入合法的数组值。
这个语法是PHP引入强类型校验机制后增加的语法糖,不需要额外的运行时判断就能明确标注可空的类型场景,可读性和安全性都比旧版本用注释标注类型更高。
内容的提问来源于stack exchange,提问作者jdrsantos
相关产品推荐
相关产品推荐

