什么问题(?)之前的类型声明意味着在php(?int)[复制]

前端之家收集整理的这篇文章主要介绍了什么问题(?)之前的类型声明意味着在php(?int)[复制]前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Predefined types of variable parameters4个
我在 https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Console/Output/Output.php第40行看到了这个代码,他们正在使用?int.
public function __construct(?int $verbosity = self::VERBOSITY_NORMAL,bool $decorated = false,OutputFormatterInterface $formatter = null)
    {
        $this->verbosity = null === $verbosity ? self::VERBOSITY_NORMAL : $verbosity;
        $this->formatter = $formatter ?: new OutputFormatter();
        $this->formatter->setDecorated($decorated);
    }
它被称为Nullable类型.

将int定义为int或null.

Type declarations for parameters and return values can now be marked as nullable by prefixing the type name with a question mark. This signifies that as well as the specified type,NULL can be passed as an argument,or returned as a value,respectively.

示例:

function nullOrInt(?int $arg){
    var_dump($arg);
}

nullOrInt(100);
nullOrInt(null);

function nullOrInt将同时接受null和int.

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

原文链接:https://www.f2er.com/php/130495.html

猜你在找的PHP相关文章