我正在做一些研究,但无法找到答案(可能是因为我没有正确搜索)
考虑这段代码:
public function foo(?array $optionalParam);
Run Code Online (Sandbox Code Playgroud)
然后是这个:
public function foo(array $optionalParam = null);
Run Code Online (Sandbox Code Playgroud)
它们之间有什么区别?使用 PHPstorm 我注意到当我使用 时?,它会创建一个 PHPdoc 并将变量类型标记为type|null. 但是当我在没有那个参数的情况下调用函数时,PHP 在我脸上尖叫“你在开玩笑吗?$optionalParam 在哪里”。另一方面,我设法毫无问题地使用了该=null选项。
对不起,如果这个问题太简单了,但我没有在网上找到任何答案。