微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

什么问题(?)之前的类型声明意味着在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.jb51.cc/php/130495.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐