Type De L'Affinage: Les Paramètres Par Défaut

PHP 5 Type Hinting

PHP 5 introduit Type Hinting. Les fonctions sont maintenant en mesure de forcer les paramètres d'objets (en spécifiant le nom de la classe dans le prototype de fonction) ou arrays (depuis PHP 5.1). Toutefois, si NULL est utilisé comme valeur de paramètre par défaut, il sera admis comme un argument pour tout appel ultérieur.

L'extrait suivant de la ci-dessus:

si NULL est utilisé comme valeur de paramètre par défaut, il sera admis comme un argument pour tout appel ultérieur.

N'est au-dessus de la moyenne:

si les paramètres par défaut sont utilisées d'une utilisation avec le type hinting, il ne peut avoir qu'ont NULL comme valeur par défaut.

c'est à dire le code dans code1 est mauvais et les résultats dans:

Erreur fatale: valeur par Défaut pour les paramètres d'un type de classe de l'indice ne peut être NULL

code1:

 function setName ( string $name = "happ") {
  ...
  }

Où dans le code de l'code2 est droit:

code2:

 function setName ( string $name = NULL) {
  ...
  }

Pourquoi est-ce une contrainte attribué en php?

OriginalL'auteur ThinkingMonkey | 2011-12-15