#[\NoDiscard]
PHP 🟢 JuniorDéfinition
Attribut de PHP 8.5 qui avertit (E_WARNING pour les fonctions natives, E_USER_WARNING pour le code utilisateur) quand la valeur de retour d'une fonction est ignorée. Le cast (void) marque un rejet volontaire. Appliqué nativement à flock() et aux méthodes set*() de DateTimeImmutable.
Analogie
Le distributeur qui bipe si vous partez sans prendre votre carte.
Exemple de code
#[\NoDiscard]
function getPhpVersion(): string {
return 'PHP 8.5';
}
getPhpVersion();
// Warning: The return value should either be used
// or intentionally ignored
(void) getPhpVersion(); // rejet explicite, pas d'avertissement
// piège classique désormais signalé :
$date->setTime(0, 0); // DateTimeImmutable retourne une copie !
Cas d'usage
Objets immuables (with*/set* qui retournent une copie) et fonctions dont le retour porte un statut à vérifier.
Anti-pattern
Marquer #[\NoDiscard] une fonction dont le retour est accessoire : on noie le code d'avertissements.
Termes liés
Fiche mise à jour le 2026-09-27