Y a-t-il une façon de pouvoir que ma fonction PHP renvoie un type de valeur différent?
Le code suivant devrait expliquer ce que je veux dire: p> sur une condition i Je retourne une chaîne, sinon je retourne un booléen. Est-ce autorisé / possible? P> p>
6 Réponses :
Oui. PHP est typement dactylographié, de sorte que toute variable peut prendre n'importe quel type. Les valeurs de retour de fonction ne font pas exception. P>
Et la peine d'ajouter que Beaucoup de fonctions PHP natif i> font cela. En fait, le manuel appelle ce type de retour «mixte».
@chris et même si le type de retour n'est pas mélangé, la fonction renvoie normalement le type de retour spécifié ou le faux / null. Alors oui, assez commun :)
Il n'est pas possible dans PHP 7 avec le mode strict activé
@Pikey Il est possible, tant que vous ne spécifiez pas de type de retour explicite. Le mode strict n'a aucun impact sur le code non typ.
est-ce autorisé / possible? p> blockQuote>
Yep. P>
Oui, c'est permis, pas comme dans C, Java, ..., où vous devez définir le retour. P>
il est permis. Cependant, il n'est pas conseillé dans le cas que vous avez donné. Pour un exemple où cela a du sens, jetez un coup d'œil à ex. Strows () fonction. P>
Oui, c'est possible (mais pas conseillé).
Vous devez au moins le déclarer dans votre commentaire Javadoc P>
/** * @param int $value * @return mixed string|boolean **/ public function test($value){ if($value == 1){ return "SUCCESS"; } else { return false; } }
Je m'interroge moi-même à ce sujet moi-même, pourquoi retourner quelque chose différent? Donc, l'extrémité de réception obtient deux choses à vérifier?
Je pense que je suis installé sur retourner une version vide du type ou un tableau avec un élément de statut moi-même. P>
Deux exemples, comment les choses peuvent changer dans Une fonction / méthode, et vous êtes essentiellement forcé de vérifier plus que prévu: p> version 2 p>
Ce n'est pas possible si vous vous souciez de bonnes pratiques :)
Juste parce que vous peut i> ne signifie pas que vous devrait i>.
Cela semble être un exemple terrible. Pourquoi pas seulement retourner
vrai code>?
@Brendanlong Je crois que c'était un exemple de «monde réel».
Cela peut ne pas être l'intention de la question de dépassement de pile retour multiple d'une fonction i>.