Make WordPress Core

Changes between Initial Version and Version 1 of Ticket #62845


Ignore:
Timestamp:
01/23/2025 06:47:53 AM (13 months ago)
Author:
sabernhardt
Comment:

Related: #57580, #57581

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #62845

    • Property Version changed from 6.7.1 to
  • Ticket #62845 – Description

    initial v1  
    11Ré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.
     2Lors de l'utilisation de PHP 8.2, une alerte "Deprecated" apparaît dans le fichier `wp-includes/functions.php`, à plusieurs endroits.
    33
    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.
     4L'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.
    55
    66Étapes pour reproduire
    771. 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 :
     82. Activer le mode débogage dans `wp-config.php` :
     9 {{{
    910   define('WP_DEBUG', true);
    1011   define('WP_DEBUG_DISPLAY', true);
    11 3. Naviguer vers une page d'administration ou effectuer une action utilisant wp-includes/functions.php.
     12 }}}
     133. Naviguer vers une page d'administration ou effectuer une action utilisant `wp-includes/functions.php`.
    12144. Observer le message d'erreur "Deprecated" dans les logs ou dans la sortie HTML.
    1315
    1416Message d'erreur exact
     17{{{
    1518Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in wp-includes/functions.php on line 2189
    1619
    1720Deprecated: 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}}}
    1822
    1923Corrections 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.
     24Pour 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.
    2125
    2226Correction pour la ligne 2189 :
    2327Bloc original :
    24 $haystack = str_replace( $needle, $replace, $haystack );
     28`$haystack = str_replace( $needle, $replace, $haystack );`
    2529
    2630Bloc corrigé avec numéros de ligne (2185-2191) :
     31{{{
    27322185: if ( ! is_array( $haystack ) && ! is_string( $haystack ) ) {
    28332186:     return $haystack;
     
    33382191: }
    3439$haystack = str_replace( $needle, $replace, $haystack );
     40}}}
    3541
    3642Correction pour la ligne 1234 (autre occurrence) :
    3743Bloc original :
    38 $result = str_replace( $search, $replace, $subject );
     44`$result = str_replace( $search, $replace, $subject );`
    3945
    4046Bloc corrigé avec numéros de ligne (1230-1235) :
     47{{{
    41481230: if ( null === $subject ) {
    42491231:     $subject = ''; // Initialiser avec une chaîne vide
     
    44511233:
    45521234: $result = str_replace( $search, $replace, $subject );
     53}}}
    4654
    4755Impact