3 votes

Pourquoi php continue-t-il à interpréter après die() ;

Duplicata possible :
arrêter le traitement du fichier php

Aujourd'hui, en jouant avec PHP, j'ai remarqué un phénomène étrange.

J'ai eu un bloc de code où il fait un travail.

$images = $wpdb->get_results($query);
    foreach($images as $image):
        $img = get_post($image->meta_value);
        print_r($img);
    endforeach;

Et après ce morceau de code, j'ai essayé de mourir, car j'avais besoin d'analyser la sortie.

$images = $wpdb->get_results($query);

            foreach($images as $image):
                $img = get_post($image->meta_value);
                print_r($img);
            endforeach;
    die;bla bla bla qit error !98123

Ce qui signifie qu'il faut s'arrêter à cette ligne et ne pas aller plus loin.

Mais ça marche, et je pensais qu'en tant que langage de script, il analysait ligne par ligne et n'allait pas au-delà de la ligne de commande. die;

Mais en fait, ça va.

Quelqu'un a-t-il une explication pour cela ?

7voto

Matteo Tassinari Points 6496

El die() y exit() fonctions uniquement arrêt exécution de l'script, ce qui n'arrive que après le fichier a été entièrement analysé .

Si tu veux arrêter analyse syntaxique de lui-même, vous devez utiliser __halt_compiler() voir : http://php.net/manual/en/function.halt-compiler.php

0voto

Wayne Whitty Points 15248

Si c'est votre code actuel, alors vous avez une erreur de syntaxe. PHP analyse votre code AVANT de l'exécuter. En d'autres termes, le fait que vous utilisiez die ou exit n'a aucune importance. Si ce n'est pas votre code (vous l'avez peut-être juste utilisé comme exemple) et que les choses sont toujours "étranges", vous devez savoir que die fonctionne exactement de la même manière que quitter qui :

Termine l'exécution du script. Les fonctions d'arrêt et les destructrices d'objets sera toujours exécuté même si exit est appelé .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X