PHP 8 ne convertit plus les variables ?
Bonjour,
Jusqu'à présent avec PHP 7 je faisais ceci:
Code:
1 2 3 4
| if (($resultat_recherche_nombre[0][0] + 54400) >= $totalcalcule)
{
} |
Cela fonctionnait toujours. $resultat_recherche_nombre[0][0] est forcément une chaîne de caractères car récupérée dans la base de données. 54400 et $totalcalcule sont des nombres.
Je savais que PHP convertit les variables dans le même format et qu'on a pas à s'occuper de ça.
Mais lors du passage sur PHP 8.0, j'ai un message
Citation:
Uncaught TypeError: Unsupported operand types: string + int
J'ai constaté que cette solution fonctionne:
Code:
1 2 3 4
| if (((int)$resultat_recherche_nombre[0][0] + 54400) >= $totalcalcule)
{
} |
C'est nouveau j'imagine, donc à partir de PHP 8 il faut faire attention au type de chaque variable même si toutes les variables commencent toujours par $ ? Ou je n'ai rien compris au réel problème ?
Donc pour résumé, je ne cherche pas vraiment d'aide pour résoudre l'erreur car j'ai trouvé, mais pour comprendre pourquoi ma façon de faire habituelle ne fonctionne plus.
Merci d'avance