[RESOLU] Warning: A non-numeric value encountered

Eléphant du PHP | 95 Messages

08 nov. 2018, 11:50

Bonjour à tous,

Après une évolution de PHP 7.0 à PHP 7.2, j'ai rencontré le pb suivant:
Warning: A non-numeric value encountered in toto.php on line 903.
cela concerne l'instruction:
$NbreAnnees = date("Y")- $AnneeCreation;
en l'écrivant :
$NbreAnnees = date('Y')- $AnneeCreation;
c'est pareil.
Initialement j'avais codé:
$NbreAnnees = date(Y)- $AnneeCreation;
qui n'est plus supportée.

Avez-vous une idée ?
merci de votre aide

Avatar du membre
Mammouth du PHP | 1609 Messages

09 nov. 2018, 13:18

Salut, as-tu vérifié le contenu de $AnneeCreation qui à priori, étant donné le message d'erreur, ne doit pas être une valeur numérique ?
Développeur web depuis + de 20 ans

Eléphant du PHP | 95 Messages

09 nov. 2018, 14:17

Bonjour Saian,
$DateCreation = $row[0]; est lu date une base de données,
ensuite
$AnneeCreation = substr($DateCreation, 0, 4); // ex 2005
$NbreAnnees = date("Y")- $AnneeCreation;
il est possible que la date de création soit nulle.
plus j'ai d'autres variables du même genre qui ne sortent pas en erreur...
Merci de ton aide

Avatar du membre
Mammouth du PHP | 1609 Messages

09 nov. 2018, 14:36

Et bien il est probable que lors de l'erreur la date soit nulle. Écris le code pour gérer ce cas afin que ça ne provoque plus d'erreur.
Développeur web depuis + de 20 ans

Eléphant du PHP | 95 Messages

14 nov. 2018, 10:20

Bonjour, Saian,
en effet dans la Base de données il y avait quelques valeurs nulles. J'ai corrigé et ça marche.
Merci de ton aide.