":?" 是啥意思?在PHP中的方法意味着之后? [复制]

Posted

技术标签:

【中文标题】":?" 是啥意思?在PHP中的方法意味着之后? [复制]【英文标题】:What does ":?" after a method means in PHP? [duplicate]":?" 是什么意思?在PHP中的方法意味着之后? [复制] 【发布时间】:2019-07-11 07:10:09 【问题描述】:

我刚刚在 Symfony 4 应用程序中看到了这个,但我找不到它的含义

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

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

【问题讨论】:

这可能意味着返回类型为null或Article 【参考方案1】:

这是 PHP 7.1 的新特性。见解释here

现在可以通过在类型名称前加上问号来将参数和返回值的类型声明标记为可为空。这表示除了指定的类型外,NULL 也可以分别作为参数传递或作为值返回。

这意味着您的函数的预期输出将是 Article 类的实例,或者是 NULL

【讨论】:

将来您应该关闭询问 PHP 中符号的问题,作为上述问题的重复。

以上是关于":?" 是啥意思?在PHP中的方法意味着之后? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

PHP中“中断”或“继续”之后的数字是啥意思?

PHP里面include是啥意思啊

href链接中的“/./”是啥意思?

在php代码中 empty 是啥意思

在php里$name[]=array("name"=>" ","type"=>" ")里[]是啥意思

admin”或“1”=“1”是啥意思?