J'ai vu ce code dans https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Console/Output/Output.php numéro de ligne 40 qu'ils utilisent? 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);
}
C'est appelé Nullable types
.
Ce qui définit ?int
comme int
ou null
.
Les déclarations de type pour les paramètres et les valeurs de retour peuvent désormais être marquées comme nullables en préfixant le nom du type avec un point d'interrogation. Cela signifie que, outre le type spécifié, NULL peut être passé en argument ou renvoyé en tant que valeur, respectivement.
Exemple :
function nullOrInt(?int $arg){
var_dump($arg);
}
nullOrInt(100);
nullOrInt(null);
la fonction nullOrInt
acceptera à la fois null et int.