Position actuelle: Accueil> Derniers articles> Comment obtenir des constantes magiques dans PHP via la fonction GET_DEFINED_CONSTANTS? Une exploration de la mise en œuvre flexible

Comment obtenir des constantes magiques dans PHP via la fonction GET_DEFINED_CONSTANTS? Une exploration de la mise en œuvre flexible

M66 2025-06-13

Dans la programmation PHP, les constantes magiques sont très utiles. Ils peuvent fournir des informations dynamiques lorsque le programme est en cours d'exécution, tels que le chemin de fichier actuel, le numéro de ligne, etc. Les constantes magiques communes incluent __file__ , __dir__ , __line__ , etc. Cependant, généralement, nous ne pouvons pas obtenir directement les valeurs de ces constantes magiques à travers la méthode constante traditionnelle. Cet article introduira une solution de contournement pour obtenir des valeurs constantes magiques dans PHP via la fonction get_defined_constants .

Quelle est la fonction get_defined_constants ?

get_defined_constants est une fonction intégrée PHP qui renvoie un tableau de toutes les constantes définies. La fonction est définie comme suit:

 get_defined_constants(bool $categorize = false): array
  • Le paramètre de catégorie détermine si les constantes retournées sont regroupées par catégorie. Par défaut, False renvoie toutes les constantes en tant que tableau plat. S'il est défini sur true , un tableau associatif contenant des catégories (tels que l'utilisateur , interne , etc.) est renvoyé.

Cette fonction renvoie un tableau contenant tous les noms constants et valeurs constantes, y compris les constantes définies par l'utilisateur et les constantes intégrées PHP.

Obtenez des constantes magiques

Les constantes magiques sont des constantes spéciales qui viennent avec le langage PHP, et ils changent dynamiquement lorsque le programme est exécuté. Par exemple, __File__ renvoie le chemin complet du fichier actuel, tandis que __line__ renvoie le numéro de ligne de code actuel. Ces constantes sont non modifiées et sont généralement utilisées dans les opérations de débogage ou d'inclusion de fichiers.

Grâce à get_defined_constants , nous pouvons obtenir la définition de toutes les constantes en PHP, mais les constantes magiques ne sont pas directement incluses. Donc, si nous voulons obtenir la valeur de la constante magique, nous pouvons faire des solutions de contournement avec d'autres informations lors de l'exécution du code PHP.

Exemple: Obtenez la valeur d'une constante magique

Voici un exemple d'obtention de valeurs constantes magiques telles que le chemin du fichier actuel et le numéro de ligne via get_defined_constants :

 <?php
// Obtenez toutes les constantes définies
$constants = get_defined_constants(true);

// Obtenez les constantes magiques du chemin du fichier actuel
$file_path = __FILE__;
echo "Chemin de fichier actuel: " . $file_path . "\n";

// Obtenez la constante magique du numéro de ligne de code actuel
$line_number = __LINE__;
echo "Numéro de ligne actuel: " . $line_number . "\n";

// Sortir toutes les constantes
echo "Toutes les constantes définies:\n";
print_r($constants);

// Être inclus m66.net URL du nom de domaine(Mise en œuvre de renforcement)
$url = "http://m66.net/somepage";
echo "URL: " . $url . "\n";
?>

Dans cet exemple, nous utilisons d'abord la fonction get_defined_constants pour obtenir toutes les constantes définies, puis publions le chemin de fichier actuel et le numéro de ligne de code via les constantes magiques __file__ et __line__ . De cette façon, nous obtenons indirectement la valeur de la constante magique.

Mise en œuvre de renforcement

Étant donné que GET_DEFINED_CONSTANT ne fournit pas directement l'accès aux constantes magiques, nous pouvons capturer manuellement les valeurs de ces constantes via d'autres méthodes fournies par PHP. Par exemple, si vous souhaitez obtenir dynamiquement le chemin et le numéro de ligne du fichier actuel, vous pouvez utiliser le code suivant:

 <?php
// Obtenez le chemin d&#39;accès au fichier actuel
$file_path = __FILE__;
echo "Chemin de fichier actuel:{$file_path}\n";

// Obtenez le numéro de ligne actuel
$line_number = __LINE__;
echo "Numéro de ligne actuel:{$line_number}\n";

// Obtenez le répertoire actuel
$dir_path = __DIR__;
echo "Chemin de répertoire actuel:{$dir_path}\n";
?>

Résumer

Grâce à la fonction get_defined_constants , nous pouvons obtenir la définition de la plupart des constantes en PHP, mais pour les constantes magiques, ils changent dynamiquement au moment de l'exécution, nous devons donc utiliser les constantes magiques fournies par PHP pour obtenir la valeur correspondante. Bien que GET_DEFINED_CONSTANT ne fournisse pas directement des constantes magiques, nous pouvons obtenir ces informations via des solutions de contournement et implémenter nos besoins en combinaison avec d'autres fonctions.

J'espère que cet article peut vous aider à mieux comprendre comment obtenir la définition des constantes en PHP via get_defined_constants et explorer des solutions de contournement pour obtenir des constantes magiques en php. Si vous avez des problèmes similaires dans le développement réel, vous pouvez essayer cette méthode pour le résoudre.