Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/10/2021, à 05:52

abelthorne

Changements dans PHP 8 ?

Bonjour,
Sur mon PC, je fais entre autre du développement web et j'ai un serveur LAMP installé. Je suis passé à Xubuntu 21.10 il y a deux jours et cette nouvelle version passe notamment à PHP 8. Après la mise à niveau, j'ai constaté que des sites que j'avais en développement étaient un peu cassés de partout. Après une petite session de débuggage, la majeure partie des problèmes venait de manipulations sur des variables non initialisées. Est-ce qu'il y a eu des changements dans PHP 8 qui font qu'il est plus strict sur ce genre de cas ou est-ce que ça viendrait plutôt de la config de PHP sur Ubuntu 21.10 qui serait moins tolérante sur les erreurs ?

Dernière modification par abelthorne (Le 18/10/2021, à 05:53)

Hors ligne

#2 Le 18/10/2021, à 08:49

bruno

Re : Changements dans PHP 8 ?

Bonjour,

On ne peut pas répondre sans voir un exemple de code et le message d'erreur exact obtenu.
À chaque nouvelle version de PHP il y a des changements bloquants, des notifications qui deviennent des avertissements et de avertissements qui deviennent des erreurs.
Tout cela est documenté ici pour le passage de php7.4 à php 8 .

Hors ligne

#3 Le 18/10/2021, à 09:07

abelthorne

Re : Changements dans PHP 8 ?

C'est sur du code très basique, du style :

$mon_tableau=$mon_objet->get_stuff();
foreach($mon_tableau as $valeur){
// Faire des trucs
}

En supposant que la méthode get_stuff() renvoie en théorie un tableau, si elle n'a en fait rien à renvoyer, la boucle foreach arrête immédiatement le script. Sur les versions précédentes, elle était simplement zappée.

Hors ligne

#4 Le 18/10/2021, à 09:18

bruno

Re : Changements dans PHP 8 ?

Bon je déplace dans la section programmation car cela n'a rien à voir avec les serveurs.

Si tu lis le lien que j'ai donné tu auras l'explication :

https://www.php.net/manual/fr/migration80.incompatible.php a écrit :

A number of warnings have been converted into Error exceptions:

    Attempting to write to a property of a non-object. Previously this implicitly created an stdClass object for null, false and empty strings.
    Attempting to append an element to an array for which the PHP_INT_MAX key is already used.
    Attempting to use an invalid type (array or object) as an array key or string offset.
    Attempting to write to an array index of a scalar value.
    Attempting to unpack a non-array/Traversable.
    Attempting to access unqualified constants which are undefined. Previously, unqualified constant accesses resulted in a warning and were interpreted as strins

.

Hors ligne