J'ai essayé d'utiliser le type hinting plus en PHP. Aujourd'hui, j'ai écrit une fonction qui prend une valeur booléenne avec un paramètre par défaut et j'ai remarqué qu'une fonction de la forme
function foo(boolean $bar = false) {
var_dump($bar);
}
en fait renvoyait une erreur fatale:
La valeur par défaut pour les paramètres d'un type de classe de l'indice ne peut être NULL
Tandis qu'une fonction de la forme similaire
function foo(bool $bar = false) {
var_dump($bar);
}
ne fait pas. Toutefois, les deux
var_dump((bool) $bar);
var_dump((boolean) $bar);
donner exactement la même sortie
:boolean false
Pourquoi est-ce? Est-ce similaire à l'emballage des classes en Java?