PHP问号运算符(不是三元运算符)

时间:2018-10-22 20:20:15

标签: php types

我遇到了PHP代码,其中包含奇怪的问号运算符。由于代码本身在该部分上没有任何注释,因此我尝试在Google上进行搜索,但未成功。

我感兴趣的代码如下:

<?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 个答案:

答案 0 :(得分:1)

http://php.net/manual/en/migration71.new-features.php

  现在,可以通过在类型名称前加上问号来将

用于参数和返回值的类型声明标记为可为空。这表示与指定的类型一样,NULL可以分别作为参数传递或作为值返回。

答案 1 :(得分:0)

这意味着您的参数或返回值可以为空。

PHP 7.1引入了它:http://php.net/manual/en/migration71.new-features.php