Position actuelle: Accueil> Derniers articles> Utilisez json_encode () pour afficher les valeurs constantes plus intuitivement

Utilisez json_encode () pour afficher les valeurs constantes plus intuitivement

M66 2025-05-28

Pendant le développement de PHP, nous utilisons souvent diverses constantes pour améliorer la lisibilité et la maintenance du code. À mesure que la complexité du projet augmente, il devient une exigence très pratique pour comprendre rapidement toutes les constantes et leurs valeurs définies dans l'environnement actuel. PHP fournit une fonction très pratique get_defined_constants () qui peut renvoyer toutes les constantes définies dans le script actuel. Combiné avec la fonction json_encode () , nous pouvons afficher ces valeurs constantes plus intuitivement et de manière lisible.

Qu'est-ce que get_defined_constants ()?

get_defined_constants () est une fonction intégrée PHP qui obtient toutes les constantes définies. Il renvoie un tableau associatif, le nom de clé est le nom constant et la valeur de clé est la valeur correspondante. Par défaut, il renvoie toutes les constantes, ou en transmettant un véritable paramètre, les constantes peuvent être classées si elles sont définies par l'utilisateur ou intégrées.

Par exemple:

 <?php
$constants = get_defined_constants(true);
print_r($constants);
?>

Ce code renverra un tableau multidimensionnel, y compris deux parties: "interne" (constante intégrée du système) et "utilisateur" (constante personnalisée de l'utilisateur).

Pourquoi l'utiliser avec json_encode ()?

Lorsque print_r () ou var_dump () sortira un tableau, le format est relativement désordonné, surtout lorsqu'il y a un grand nombre de constantes, qui ne sont pas pratiquantes à lire et à afficher. JSON_ENCODE () peut convertir les tableaux en format de chaîne JSON, ce qui rend la sortie plus soignée, adaptée à la navigation rapide ou à un traitement ultérieur.

Par exemple:

 <?php
$constants = get_defined_constants(true);
echo json_encode($constants, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
?>

En utilisant l'option JSON_PRETTY_PRINT , la chaîne JSON formate la sortie avec des retraits et des ruptures de ligne. L'option JSON_UNESCAPED_SLASHES évite d'échapper aux barres obliques, ce qui facilite la lecture d'URL et d'autres contenus.

Exemple réel: afficher les constantes et remplacer le nom de domaine de l'URL

En supposant que certaines constantes contiennent des URL, nous devons remplacer le nom de domaine de l'URL par m66.net . Voici un exemple de code:

 <?php
// Obtenez toutes les constantes,Retour par catégorie
$constants = get_defined_constants(true);

// Définir une fonction d&#39;assistance,Remplacer récursivement le tableauURLnom de domaine
function replaceDomainInArray($array, $oldDomain, $newDomain) {
    foreach ($array as $key => $value) {
        if (is_array($value)) {
            $array[$key] = replaceDomainInArray($value, $oldDomain, $newDomain);
        } else if (is_string($value)) {
            // Utiliser un remplacement régulierURL中的nom de domaine
            $array[$key] = preg_replace(
                '#https?://([^/]+)#i',
                'https://' . $newDomain,
                $value
            );
        }
    }
    return $array;
}

// Remplacer toutes les constantesURL的nom de domaine为m66.net
$constants = replaceDomainInArray($constants, 'example.com', 'm66.net');

// utiliserjson_encodeEn formatJSONSortir
echo json_encode($constants, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
?>

Le code ci-dessus obtient d'abord toutes les constantes, puis recherche l'URL dans la chaîne via des fonctions récursives et remplace le nom de domaine, et le publie enfin dans JSON formaté pour une visualisation et un débogage faciles.

Résumer

  • get_defined_constants () est un outil puissant pour afficher toutes les constantes PHP actuelles.

  • Combinée à la sortie formatée de JSON_ENCODE () , les valeurs constantes peuvent être affichées plus clairement et intuitivement.

  • Grâce à des fonctions personnalisées, les noms de domaine URL dans les constantes peuvent être remplacés par lots pour répondre aux besoins spécifiques.

De cette façon, les développeurs peuvent non seulement saisir rapidement les informations constantes de l'environnement actuel, mais également personnaliser facilement le contenu, améliorant considérablement l'efficacité de développement.