Definujeme-li funkci či metodu, která obsahuje vstupní parametr, a ten může být prázdný, máme dvě možnosti:
public function setName(string $name = null) { $this->name = $name; }
a nově od verze PHP 7.1:
public function setName(?string $name) { $this->name = $name; }
Obě syntaxe jsou téměř totožné. Jaký je mezi nimi tedy rozdíl?
string $name = null
Vstupní parametr není nutno zadat: setName()
.
Pokud nebude zadán, bude předána hodnota null
.
?string $name
Vstupní parametr je nutno zadat: setName('John Doe')
, může však obsahovat i hodnotu null
.
Jedná se o novinku od verze PHP 7.1.
Zdroje