Réponses:
Il n'y a pas de différence - ce sont les mêmes.
Manuel PHP pour exit
:
Remarque: Cette construction de langage est équivalente à
die()
.
Manuel PHP pour die
:
Cette construction de langage est équivalente à
exit()
.
die
des arrêts liés aux erreurs et exit
pour tous les autres scénarios. Il semble simplement mieux circuler lors de la lecture du code.
die
est beaucoup plus rapide à écrire que exit
... je commence à utiliser exit
parce qu'il est plus lisible pour les programmeurs non PHP, mais die
est juste plus rapide à taper lorsque vous êtes pressé. De plus, par la façon dont je tape, je n'ai pas à changer la position de mes mains pour écrire die
.
La différence entre PHP die()
et exit()
PHP est leur origine .
exit()
est compris entre exit()
en C .die()
est originaire die
de Perl .die()
et exit()
sont des fonctions équivalentes.
Manuel PHP pour die
:
Cette construction de langage est équivalente à
exit()
.
Manuel PHP pour exit
:
Remarque: Cette construction de langage est équivalente à
die()
.
Manuel PHP pour la liste des alias de fonction :
die()
et exit()
sont différents dans d'autres langages mais en PHP ils sont identiques.
De Encore une autre diatribe PHP :
... En tant que codeur C et Perl, j'étais prêt à répondre: "Pourquoi, exit () met simplement fin au programme avec un état de sortie numérique, tandis que die () imprime le message d'erreur à stderr et se termine avec l'état EXIT_FAILURE. " Mais ensuite, je me suis souvenu que nous étions dans la terre à syntaxe désordonnée de PHP.
En PHP, exit () et die () sont identiques.
Les concepteurs ont évidemment pensé "Hmm, empruntons la sortie () de C. Et les gens de Perl l'aimeront probablement si nous prenons die () comme de Perl aussi. Oups! Nous avons maintenant deux fonctions de sortie! peut prendre une chaîne ou un entier comme argument et les rendre identiques! "
Le résultat final est que cela n'a pas vraiment rendu les choses "plus faciles", juste plus confuses. Les codeurs C et Perl continueront d'utiliser exit () pour lancer une valeur de sortie entière uniquement, et die () pour lancer un message d'erreur et quitter avec un échec. Les débutants et les personnes utilisant PHP comme première langue se demanderont probablement "umm, deux fonctions de sortie, laquelle dois-je utiliser?" Le manuel n'explique pas pourquoi il y a exit () et die ().
En général, PHP a beaucoup de redondances étranges comme celle-ci - il essaie d'être convivial avec des gens qui viennent d'horizons linguistiques différents, mais ce faisant, il crée une redondance déroutante.
exit()
ne ferme pas la connexion alors que die()
cela semble pertinent.
Comme indiqué précédemment, ces deux commandes produisent le même jeton d'analyse.
MAIS
Il y a une petite différence, et c'est le temps qu'il faut à l'analyseur pour retourner le jeton.
Je n'ai pas étudié l'analyseur PHP, mais s'il s'agit d'une longue liste de fonctions commençant par "d" et d'une liste plus courte commençant par "e", il doit y avoir une pénalité de temps en recherchant le nom de la fonction pour les fonctions commençant par " e ". Et il peut y avoir d'autres différences en raison de la façon dont le nom de la fonction entière est vérifiée.
Je doute qu'il sera mesurable à moins que vous ayez un environnement "parfait" dédié à l'analyse PHP, et beaucoup de requêtes avec des paramètres différents. Mais il doit y avoir une différence, après tout, PHP est un langage interprété.
Manuel PHP sur die :
mourir - Équivalent à sortir
Vous pouvez même faire die;
la même chose que exit;
- avec ou sans parens.
Le seul avantage de choisir die()
plus exit()
, peut - être le temps que vous épargnerez à taper une lettre supplémentaire ;-)
php -a
) die;
, die();
, exit;
et exit();
n'a pas d' effet, alors que exit
(sans virgule) quitte le mode interactif.
Comme le disent toutes les autres bonnes réponses, die
et exit
sont identiques / alias.
Bien que j'aie une convention personnelle selon laquelle lorsque je veux terminer l'exécution d'un script quand il est attendu et souhaité, j'utilise exit;
. Et lorsque j'ai besoin de terminer l'exécution en raison de certains problèmes (impossible de se connecter à db, impossible d'écrire dans un fichier, etc.), j'utilise die("Something went wrong.");
pour "tuer" le script.
Lorsque j'utilise exit:
header( "Location: http://www.example.com/" ); /* Redirect browser */
/* Make sure that code below does not get executed when we redirect. */
exit; // I would like to end now.
Quand j'utilise die:
$data = file_get_contents( "file.txt" );
if( $data === false ) {
die( "Failure." ); // I don't want to end, but I can't continue. Die, script! Die!
}
do_something_important( $data );
De cette façon, quand je vois exit
à un moment donné dans mon code, je sais qu'à ce stade, je veux quitter parce que la logique se termine ici. Quand je vois die
, je sais que j'aimerais continuer l'exécution, mais je ne peux pas ou ne devrais pas en raison d'une erreur lors de l'exécution précédente.
Bien sûr, cela ne fonctionne que lorsque vous travaillez sur un projet seul. Quand il y a plus de monde personne ne les empêchera d'utiliser die
ou exit
là où ça ne correspond pas à mes conventions ...
Voici quelque chose d'assez intéressant. Bien que exit()
et die()
soient équivalents, die()
ferme la connexion. exit()
ne ferme pas la connexion.
die()
:
<?php
header('HTTP/1.1 304 Not Modified');
die();
?>
exit()
:
<?php
header('HTTP/1.1 304 Not Modified');
exit();
?>
Résultats:
exit()
:
HTTP/1.1 304 Not Modified
Connection: Keep-Alive
Keep-Alive: timeout=5, max=100
die()
:
HTTP/1.1 304 Not Modified
Connection: close
Au cas où vous en auriez besoin pour votre projet.
exit
et de die
travailler de la même manière, ils ont tous deux une connexion étroite.
Côté fonctionnalité, ils sont identiques mais je les utilise dans les scénarios suivants pour rendre le code lisible:
Utilisez die () en cas d'erreur et arrêtez l'exécution.
par exemple
die( 'Oops! Something went wrong' );
Utilisez exit () lorsqu'il n'y a pas d'erreur et devez arrêter l'exécution.
par exemple
exit( 'Request has been processed successfully!' );
Cette page dit die
est un allié de exit
, donc ils sont identiques. Mais explique également que:
il existe des fonctions qui ont changé de nom à cause d'un nettoyage de l'API ou pour une autre raison et les anciens noms ne sont conservés que comme alias pour la compatibilité descendante. C'est généralement une mauvaise idée d'utiliser ce type d'alias, car ils peuvent être liés à l'obsolescence ou au changement de nom, ce qui conduira à un script non transférable.
Alors, appelez-moi paranoïaque, mais il n'y aura peut-être plus rien die
à l'avenir.
is_int()
et is_integer()
sont également bons par exemple. En regardant l' php-src
historique des validations sur GitHub, la die()
construction est en PHP au moins depuis 1999 quand elle a été convertie en un dépôt SVN, et probablement aussi longtemps que le langage a existé. Il semble absurde d’imaginer qu’elle sera un jour dépréciée.
exit
à l'avenir. Ou il n'y en aura peut-être pas die
à l'avenir"
Cette sortie de https://3v4l.org montre que die et exit sont fonctionnellement identiques.
Ils sont essentiellement les mêmes, bien que cet article suggère le contraire.
Fonctionnellement, ils sont identiques. Donc, choisir lequel utiliser est totalement une préférence personnelle. Sémantiquement en anglais, ils sont différents. Die semble négatif. Lorsque j'ai une fonction qui renvoie des données JSON au client et termine le programme, cela peut être horrible si j'appelle cette fonction jsonDie (), et il est plus approprié de l'appeler jsonExit (). Pour cette raison, j'utilise toujours exit au lieu de die.
D'après ce que je sais quand je regarde cette question ici
Il y est dit que "en PHP, il y a une différence distincte dans la sortie de l'en-tête. Dans les exemples ci-dessous, j'ai choisi d'utiliser un en-tête différent mais pour montrer la différence entre exit () et die () qui n'a pas d'importance", et testé (personnellement)
Dans w3schools Quiz: les fonctions die () et exit () font exactement la même chose? ma réponse est fausse. C'est une mauvaise réponse. La bonne réponse est vraie.
Quelque chose que j'ai remarqué dans mes scripts au moins, c'est que exit () arrêtera le script en cours d'exécution et renverra le contrôle à tout script appelant, tandis que die arrêtera php sur ses traces. Je dirais que c'est une grosse différence?
Le résultat de la fonction exit () et de la fonction die () est toujours le même. Mais comme expliqué dans la page de manuel d'alias ( http://php.net/manual/en/aliases.php ), il est dit que la fonction die () appelle la fonction exit. Je pense qu'il est codé en dur comme ci-dessous:
function die($msg){
exit($msg);
}
Ce n'est pas un problème de performances pour les petits, moyens et grands projets, mais si le projet a des milliards, des milliards, des milliards, des milliards, des processus, cela se produit dans un état d'optimisation des performances très important.
Mais la plupart des gens ne pensent pas que c'est un problème, car si vous avez autant de processus, vous devez penser plus de problème que si une fonction est maître ou alias.
Mais, la réponse exacte est que; la fonction master allways est plus rapide que l'alias.
Finalement; La page de manuel Alias indique que vous ne pouvez plus utiliser le dé. Ce n'est qu'un alias et il est obsolète.
C'est généralement une mauvaise idée d'utiliser ce type d'alias, car ils peuvent être liés à l'obsolescence ou au changement de nom, ce qui conduira à un script non transférable. Cette liste est fournie pour aider ceux qui souhaitent mettre à jour leurs anciens scripts vers une syntaxe plus récente.
die()
n'est pas une fonction distincte. C'est juste un autre nom de exit()
. Cette réponse contient des déclarations incorrectes sur les alias et leurs performances.
Ils sonnent à peu près de la même manière, cependant, la sortie () vous permet également de définir le code de sortie de votre script PHP.
Habituellement, vous n'en avez pas vraiment besoin, mais lorsque vous écrivez des scripts PHP de console, vous voudrez peut-être vérifier avec Bash par exemple si le script a tout terminé correctement.
Ensuite, vous pouvez utiliser exit () et rattraper cela plus tard. Die () ne supporte cependant pas cela.
Die () existe toujours avec le code 0. Donc essentiellement une commande die () fait ce qui suit:
<?php
echo "I am going to die";
exit(0);
?>
C'est la même chose que:
<?php
die("I am going to die");
?>
die
et exit
sont identiques (ils produisent le même jeton analyseur ( T_EXIT
) et sont exécutés par le même code). Si le paramètre est un entier, il renverra ce code au shell. Si ce n'est pas le cas, il le restitue et renvoie 0. Donc die
, ce exit
sont littéralement des alias les uns pour les autres.
so exit() is exit and die() is also exit :)