问号在php中的作用是什么?
class Service
{
private Logger $logger;
public function __construct(
?Logger $logger = null,
) {
$this->logger = $logger ?? new NullLogger();
}
}
我正在学习 php oop。
问号在 ?Logger $logger = null
中做什么?
我用谷歌搜索但找不到答案。
class Service
{
private Logger $logger;
public function __construct(
?Logger $logger = null,
) {
$this->logger = $logger ?? new NullLogger();
}
}
I'm learning php oop.
What does question mark do in ?Logger $logger = null
??
I googled but couldn't find an answer.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
“?”在参数或属性面前意味着此参数/属性为nullabe,在您的示例中,您可以传递logger对象或null。
您可以在这里阅读更多有关它的信息:
https://www.php.net/manual/manual/en/en/migration71。 new-features.php
"?" in front of argument or property means that this argument/property is nullabe, in your example you can pass either a Logger object or null.
You can read more about it here:
https://www.php.net/manual/en/migration71.new-features.php
这是
无效类型
。This is
Nullable type
.PHP Documentation