#[\NoDiscard]

PHP 🟢 Junior

Dé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.
#core#php85

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre