Changes between Initial Version and Version 1 of Ticket #62845
- Timestamp:
- 01/23/2025 06:47:53 AM (13 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #62845
-
Property
Version
changed from
6.7.1to
-
Property
Version
changed from
-
Ticket #62845 – Description
initial v1 1 1 Résumé du problème 2 Lors de l'utilisation de PHP 8.2, une alerte "Deprecated" apparaît dans le fichier wp-includes/functions.php, à plusieurs endroits.2 Lors de l'utilisation de PHP 8.2, une alerte "Deprecated" apparaît dans le fichier `wp-includes/functions.php`, à plusieurs endroits. 3 3 4 L'alerte se produit parce que la fonction str_replace() reçoit une valeur null pour le paramètre $subject. Dans PHP 8.2, passer null à un paramètre attendu comme array|stringgénère une alerte de dépréciation.4 L'alerte se produit parce que la fonction `str_replace()` reçoit une valeur `null` pour le paramètre `$subject`. Dans PHP 8.2, passer `null` à un paramètre attendu comme `array|string` génère une alerte de dépréciation. 5 5 6 6 Étapes pour reproduire 7 7 1. Installer WordPress sur un environnement local ou un serveur exécutant PHP 8.2. 8 2. Activer le mode débogage dans wp-config.php : 8 2. Activer le mode débogage dans `wp-config.php` : 9 {{{ 9 10 define('WP_DEBUG', true); 10 11 define('WP_DEBUG_DISPLAY', true); 11 3. Naviguer vers une page d'administration ou effectuer une action utilisant wp-includes/functions.php. 12 }}} 13 3. Naviguer vers une page d'administration ou effectuer une action utilisant `wp-includes/functions.php`. 12 14 4. Observer le message d'erreur "Deprecated" dans les logs ou dans la sortie HTML. 13 15 14 16 Message d'erreur exact 17 {{{ 15 18 Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in wp-includes/functions.php on line 2189 16 19 17 20 Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in wp-includes/functions.php on line 1234 (exemple pour un deuxième cas similaire) 21 }}} 18 22 19 23 Corrections apportées 20 Pour chaque occurrence de str_replace()recevant une variable qui pourrait être null, il est nécessaire de vérifier et d'initialiser la variable avant de l'utiliser.24 Pour chaque occurrence de `str_replace()` recevant une variable qui pourrait être null, il est nécessaire de vérifier et d'initialiser la variable avant de l'utiliser. 21 25 22 26 Correction pour la ligne 2189 : 23 27 Bloc original : 24 $haystack = str_replace( $needle, $replace, $haystack ); 28 `$haystack = str_replace( $needle, $replace, $haystack );` 25 29 26 30 Bloc corrigé avec numéros de ligne (2185-2191) : 31 {{{ 27 32 2185: if ( ! is_array( $haystack ) && ! is_string( $haystack ) ) { 28 33 2186: return $haystack; … … 33 38 2191: } 34 39 $haystack = str_replace( $needle, $replace, $haystack ); 40 }}} 35 41 36 42 Correction pour la ligne 1234 (autre occurrence) : 37 43 Bloc original : 38 $result = str_replace( $search, $replace, $subject ); 44 `$result = str_replace( $search, $replace, $subject );` 39 45 40 46 Bloc corrigé avec numéros de ligne (1230-1235) : 47 {{{ 41 48 1230: if ( null === $subject ) { 42 49 1231: $subject = ''; // Initialiser avec une chaîne vide … … 44 51 1233: 45 52 1234: $result = str_replace( $search, $replace, $subject ); 53 }}} 46 54 47 55 Impact