在PHP中方法后面的“:?”是什么意思?[duplicate]

jfewjypa  于 2023-01-01  发布在  PHP
关注(0)|答案(1)|浏览(255)
    • 此问题在此处已有答案**:

What is the purpose of the question marks before type declaration in PHP7 (?string or ?int)?(4个答案)
Reference — What does this symbol mean in PHP?(24个答案)
三年前关闭了。
我刚刚在Symfony 4应用程序中看到了这一点,但我找不到它的含义

public function findOneBySomeField($value): ?Article
    {
        return $this->createQueryBuilder('a')
            ->andWhere('a.exampleField = :val')
            ->setParameter('val', $value)
            ->getQuery()
            ->getOneOrNullResult()
        ;
    }

我知道,现在在PHP 7中,您可以使用**":int $val"定义返回值的预期类型,但是在这里,?**符号是什么意思?

z4bn682m

z4bn682m1#

这是PHP 7.1中的一个新特性。请参见here的说明
参数和返回值的类型声明现在可以通过在类型名称前加上问号来标记为可空。这表示除了指定的类型之外,NULL还可以分别作为参数传递或作为值返回。
这意味着函数的预期输出将是类Article的Instance或NULL

相关问题