- 此问题在此处已有答案**:
What is the purpose of the question marks before type declaration in PHP7 (?string or ?int)?(4个答案)
四年前关闭了。
我在PHP中遇到了一段代码,它有奇怪的问号操作符。由于代码本身没有任何关于这部分的注解,我试图谷歌它,但没有成功。
我感兴趣的代码是这样的:
<?php
class Cart
{
private $_user;
private $_items = [];
public function __construct(?User $user)
{
$this->_user = $user;
}
public function getUser(): ?User
{
return $this->_user;
}
我的第一个想法是类型提示,这是在PHP 7中引入的,但它显然不是这样,也不是严格的类型声明。我不知道,它是什么。你能帮助我吗?
2条答案
按热度按时间kuuvgm7e1#
http://php.net/manual/en/migration71.new-features.php
参数和返回值的类型声明现在可以通过在类型名称前加上问号来标记为可空。这表示除了指定的类型之外,NULL还可以分别作为参数传递或作为值返回。
wi3ka0sx2#
这意味着您的参数或返回值可以为空。
PHP 7.1介绍了它:http://php.net/manual/en/migration71.new-features.php