Bonjour, A plusieurs reprises, j'ai constaté qu'avec la même version PHP sur Wampserver et en ligne chez Ionos, les sites locaux sur Wampserver était plus permissifs que les sites en ligne. (actuellement 8.2) C'est gênant car les problèmes apparaissent à la mise en ligne au lieu d'apparaître et d'être corrigés en cours de développement.
C'est en particulier le cas de la casse des noms de classes (exemple: maclasse au lieu de Maclasse) Autre cas: Lorsqu'une variable n'est pas définie, elle est acceptée comme vide par la version PHP de Wampserver: if($errors) Par contre, en ligne il est nécessaire d'écrire: if( !empty($errors) ) pour éviter une erreur.
Je pense qu'il faudrait rendre les versions PHP de Wampserver moins permissives.
Toutes les versions de PHP de Wampserver sont telles qu'elles sont fournies par PHP.
La sensibilité à la casse des noms de fichier ou de classe dépend du système sur lequel tourne ledit PHP : - Sous Windows insensibilité à la casse - Sous Unix sensibilité à la casse
Quel que soit le système d'exploitation, le nom d'une variable est sensible à la casse.
Les variables non initialisées ont une valeur par défaut selon leur type - false pour les booléens, zéro pour les entiers et les réels, chaîne vide pour les chaînes de caractères (comme utilisée avec echo) ou un tableau vide pour les tableaux.
Pour une variable non initialisée, if($errors) retournera false mais il y aura aussi un Warning. PHP Warning: Undefined variable $errors in E:\wamp64\scripts\test.php on line 9
Le fait qu'il y ait une différence avec Ionos vient du fait que la gestion des erreurs n'est pas la même : Avec Wampserver, c'est : error_reporting = E_ALL (Show all errors, warnings and notices including coding standards.) et, chez Ionos, c'est sans doute : error_reporting = E_ALL & ~E_NOTICE (Show all errors, except for notices)
Pour une variable non initialisée, if(!empty($errors)) retournera false mais il n'y aura pas de Warning. empty() : Détermine si une variable est considérée comme vide. Une variable est considérée comme vide si elle n'existe pas, ou si sa valeur équivaut à false. La fonction empty() ne génère pas d'alerte si la variable n'existe pas.