什么问题(?)之前的类型声明意味着在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

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...