php7 vide type de retour ne fonctionne pas?
J'ai un problème avec les types de retour dans php7, spécialement "nul".
il fonctionne avec tous les autres types, int, string, null, bool, les objets de la classe.
mais quand je vide il m'attendant à retourner une instance de l'objet nul, mais en réalité, il ne devrait pas attendre de retour que c'est ce que le vide est pour.
note: je suis en cours d'exécution PHP 7.0.3
voici le code:
public static function setResponseCode(int $code) : void
{
http_response_code($code);
}
et le message d'erreur est:
Uncaught TypeError: valeur de Retour de la base de Code\HttpRequester::setResponseCode() doit être une instance de vide, aucun retourné dans /var/www/html/src/HttpRequester.php:86 Stack trace: #0 /var/www/html/index.php(103): Code\HttpRequester::setResponseCode(500) #1 {principal} jeté dans /var/www/html/src/HttpRequester.php sur la ligne 86
return;
qui est valide. Comme http_response_code
renvoie une valeur, c'est peut-être de se confondre et de penser que le résultat est retournéou peut-être n'existe pas (encore) comme un vide, le type de retour 🙂
C'est bien d'utiliser
http_response_code();
, vous n'êtes pas de retour ce qu'il est.suffit de ne pas utiliser cette fonctionnalité!
Il peut être utile pour plus de lisibilité. J'ai juste vérifié, il sera possible en PHP 7.1 : wiki.php.net/rfc/void_return_type
OriginalL'auteur nSams Dev | 2016-02-18
Vous devez vous connecter pour publier un commentaire.
Nulle types de retour sont pour PHP 7.1 (qui n'avait pas encore été libérés lorsque vous demandé ce). À partir de la RFC
OriginalL'auteur Machavity
Je viens de trouver la réponse ici: https://wiki.php.net/rfc/void_return_type
Il sera d'une fonction en PHP 7.1
OriginalL'auteur rap-2-h
Non, il n'est pas, jusqu'à ce que PHP 7.1. Pour PHP 7.0, vous devez omettre le type de retour complètement pour
void
fonctions/méthodes.Malheureusement, vous n'avez aucun type de sécurité pour cette fonction/méthode, et pas de
TypeError
sera levée si vous démarrez le retour de quelque chose d'elle.Heureusement, PHP 7.1 résout ce:
C'est la syntaxe correcte pour PHP 7.1:
Cela a été reportée au cours de la proposition qui a créé le type de retour des astuces:
NULL
aussi n'est pas permis à un type de retour.OriginalL'auteur Will
tl;dr
Le type de retour void fonctionne depuis la version 7.1 qui est déjà disponible.
De travail syntaxe est:
OriginalL'auteur WallTearer
Pourquoi ne pas simplement utiliser
C'est la même chose comme nulle.
Vous pouvez même supprimer le retour avec juste l'écho
OriginalL'auteur H.B