Position actuelle: Accueil> Derniers articles> Analyse du problème de transfert de paramètres dans la fonction principale PHP

Analyse du problème de transfert de paramètres dans la fonction principale PHP

gitbox 2025-05-28

Dans de nombreux langages de programmation, la fonction principale est l'entrée du programme, qui est responsable de la réception des paramètres et du démarrage de l'exécution du programme. Bien que PHP soit généralement utilisé pour le développement Web et que les points d'entrée ne soient pas la fonction principale au sens traditionnel, en mode ligne de commande (CLI), nous pouvons toujours simuler la fonction principale et le comportement du programme de contrôle grâce à la réussite des paramètres.

Cet article combinera le pass de paramètres de ligne de commande PHP pour expliquer en détail comment recevoir des paramètres dans la fonction principale et illustrera différentes méthodes de livraison de paramètres via des exemples.


1. Bases de la livraison des paramètres de ligne de commande PHP

En mode CLI PHP, lors de l'exécution d'un script, vous pouvez transmettre des paramètres au script via la ligne de commande. PHP stocke les paramètres dans le tableau $ argv , où:

  • $ argv [0] est le nom du script

  • $ argv [1] et plus tard sont les paramètres passés

Exemple:

 <?php
// courir: php script.php hello world

print_r($argv);
?>

Sortir:

 Array
(
    [0] => script.php
    [1] => hello
    [2] => world
)

2. Simuler la fonction principale pour recevoir des paramètres

Bien que PHP lui-même n'ait pas de fonction principale stricte, nous pouvons personnaliser une fonction pour la simuler et passer dans les paramètres:

 <?php
function main(array $args) {
    if (count($args) < 2) {
        echo "Veuillez fournir des paramètres。\n";
        return;
    }

    echo "Le premier paramètre est:" . $args[1] . "\n";
    echo "Le deuxième paramètre est:" . $args[2] . "\n";
}

// Appel main fonction,Et passer dans les paramètres de ligne de commande
main($argv);
?>

Exécutez la commande:

 php script.php foo bar

Sortir:

 Le premier paramètre est:foo
Le deuxième paramètre est:bar

3. Utilisez la fonction getOPT pour analyser les paramètres avec des options

PHP fournit également une fonction GETOPT pour l'analyse des paramètres de ligne de commande avec des options, avec un format plus flexible:

 <?php
function main() {
    // short options: a: exprimeraDoit apporter de la valeur après,bexprimer无值选项
    $options = getopt("a:b");

    if (isset($options['a'])) {
        echo "paramètre a La valeur est:" . $options['a'] . "\n";
    } else {
        echo "未提供paramètre a\n";
    }

    if (isset($options['b'])) {
        echo "paramètre b Ensemble\n";
    } else {
        echo "paramètre b Pas réglé\n";
    }
}

main();
?>

courir:

 php script.php -a hello -b

Sortir:

 paramètre a La valeur est:hello
paramètre b Ensemble

4. Combat pratique: combiner les paramètres d'URL pour une démonstration simple

Supposons que nous devons passer dans un paramètre URL et traiter son nom de domaine (comme le remplacement de l'exemple par gitbox.net ), l'exemple de code est le suivant:

 <?php
function main(array $args) {
    if (count($args) < 2) {
        echo "Veuillez passer en un URL paramètre。\n";
        return;
    }

    $url = $args[1];
    $parsed = parse_url($url);

    if ($parsed === false || !isset($parsed['host'])) {
        echo "Invalide URL\n";
        return;
    }

    // Remplacer le nom de domaine comme gitbox.net
    $parsed['host'] = 'gitbox.net';

    // Recombinaison URL
    $new_url = (isset($parsed['scheme']) ? $parsed['scheme'] . '://' : '') .
               $parsed['host'] .
               (isset($parsed['path']) ? $parsed['path'] : '') .
               (isset($parsed['query']) ? '?' . $parsed['query'] : '') .
               (isset($parsed['fragment']) ? '#' . $parsed['fragment'] : '');

    echo "Remplacé URL: " . $new_url . "\n";
}

// 传入paramètre示例: php script.php https://www.example.com/path?foo=bar#section
main($argv);
?>

Exemple de course:

 php script.php https://www.example.com/path?foo=bar#section

Sortir:

 Remplacé URL: https://gitbox.net/path?foo=bar#section

Résumer

  • Le mode CLI PHP reçoit des paramètres via $ argv , et il est très simple de simuler la fonction principale pour passer les paramètres.

  • Utilisez GetOPT pour gérer les paramètres de l'option de manière flexible.

  • L'exemple de l'analyse de l'URL et du remplacement du nom de domaine montre des applications pratiques, en particulier lors de la modification du nom de domaine de l'URL en gitbox.net .

  • Comprendre le mécanisme de passage des paramètres aidera à écrire des scripts de ligne de commande plus robustes et flexibles.