我正在做一些研究,但无法找到答案(可能是因为我没有正确搜索)
考虑这段代码:
public function foo(?array $optionalParam);
然后是这个:
public function foo(array $optionalParam = null);
它们之间有什么区别?使用 PHPstorm 我注意到当我使用 时?
,它会创建一个 PHPdoc 并将变量类型标记为type|null
. 但是当我在没有那个参数的情况下调用函数时,PHP 会在我脸上尖叫“你在开玩笑吗?$optionalParam 在哪里”。另一方面,我设法毫无问题地使用了该=null
选项。
对不起,如果这个问题太简单了,但我没有在网上找到任何答案。
这是一个 PHP 7.1 特性,称为Nullable Types
你写的两行是相同的。
array ?$optionalParam : either an array or null
array $optionalParam = null : either an array or null
使用?
您仍然需要在调用函数时添加参数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句