Quelle est la différence entre echo ("quitter"); die; die ("quitter");?
J'ai vu un peu de code ce faire:
if(something){
echo 'exit from program';
die;
}
...more code
Et d'autres qui utilisent die
:
if(something) die('exit from program');
...more code
Est-il une différence inhérente à quand ce serait la fin du programme, je devrais connaître le code qui vient après? etcetera
Mise à JOUR
Je me demande surtout si c'est un style de codage, ou si il y a une vraie raison pour laquelle certains sont codés d'une manière plutôt qu'une autre. Je ne demande pas quelle est la différence entre exit
et die
est.
Je ne pense vraiment pas que ce est quelque chose pour se soucier de
Je considère que c'est un bug de PHP vous permet de le faire plus d'une façon. Ne vous inquiétez pas à ce sujet.
Il n'est pas un bug, c'est un comportement intentionnel, semblable à être en mesure d'utiliser
Non, ce n'est pas un bug par toute définition raisonnable.
HAHA, vous ne pouvez pas être sérieux. Usage général langues ont d'innombrables façons de faire la même chose. C'est le genre de point. Je suppose que tout le langage de la
Je considère que c'est un bug de PHP vous permet de le faire plus d'une façon. Ne vous inquiétez pas à ce sujet.
Il n'est pas un bug, c'est un comportement intentionnel, semblable à être en mesure d'utiliser
print
ou echo
Non, ce n'est pas un bug par toute définition raisonnable.
HAHA, vous ne pouvez pas être sérieux. Usage général langues ont d'innombrables façons de faire la même chose. C'est le genre de point. Je suppose que tout le langage de la
1 + 1 == 1 - -1
est plein de bugs.OriginalL'auteur Neal | 2011-04-28
Vous devez vous connecter pour publier un commentaire.
Non, il n'y a pas de différence; ils les deux écrire
"exit"
à STDOUT et de mettre fin au programme.Je préfère la
die("exit")
méthode car elle est moins saisissant, plus facile à commenter et sémantiquement plus clair.Aussi loin que la "vitesse", pourquoi voudriez-vous qui est le plus rapide? Avez-vous besoin de votre programme à mourir très rapidement?
RE: Votre mise à jour
Il est pas différence, inhérente ou autrement. Elles sont identiques. La deuxième option,
die('exit')
, est un état unique, et donc ne nécessite pas d'accolades lorsqu'il est utilisé avec unif
instruction; cela n'a rien à voir avec ladie
et tout à voir avec des blocs et de contrôle de flux dans le style C langues.RE: Votre commentaire/seconde mise à jour
La façon dont vous
die
est une question de préférence personnelle. Comme je l'ai dit, ils sont identiques. J'ai choisi la 2ème option pour les raisons énumérées ci-dessus: plus Court, plus clair, plus propre, ce qui équivaut à un "mieux", à mon avis.La différence entre
exit
etdie
est queexit
vous permet de revenir à un état différent de zéro, alors quedie
retourne 0. Ni la fonction est "mieux", ils servent à des fins différentes.Vivre vite, mourir jeune et laisser un beau fichier journal.
+1 tu m'a fait rire
+1 pour
Do you need your program to die really quickly?
En fait c' pose une autre question. Vous êtes une utilisation abusive du terme "pose la question".
OriginalL'auteur meagar
pas de différence.
Et pourquoi demander différence de vitesse puisque vous êtes en train de mourir.
Entendu parler de l'Euthanasie? 🙂
😛 (13 ordure plus de char)
OriginalL'auteur mathk
Il y a une différence gars. DIE() peut être utilisé avec d'autres failable fonctions alors que l'écho aurait besoin pour attraper comme une erreur ou une exception.
Vous donne immédiatement de la prise/de mourir de la séquence.
$query = mysql_query("SELECT * FROM tablename") OR exit(mysql_error());
fonctionne tout aussi bien. Die() et exit() sont équivalentes.Cela n'a rien à voir avec
die
; vous pouvez écrire<statement#1> or <statement#2>
avec une série de déclarations, il n'est pas une caractéristique de la langue spécifique àdie
. Également de commenter@meagar
dans une réponse que je n'ai pas déjà commenté ne fonctionne pas.Aussi il n'y a pas une telle chose comme un "catch/die" de la séquence; c'est tout simplement un bon vieux évaluation de court-circuit.
pardon my termes simples, alors je suppose.
OriginalL'auteur meteorainer
Pour l'exemple précis que vous avez posté, ils sont égaux, depuis le
$status
est une chaîne, mais comme le manuel dit ce n'est pas toujours le cas:Donc, si au lieu de
'exit from program'
vous voulais sortie, dire42
vous vraiment besoin de le faire:die(42);
? que l'habitude de faire quoi que ce soit? quel serait le résultat?Je n'ai pas dit qu'il ne serait pas de rien, mais il ne sera certainement pas echo'ed! Si vous ne
die(42)
l'exécution se termine avec le statut de sortie de 42, c'est surtout utile en CLI (Interface de Ligne de Commande) les environnements. Juste quelque chose à chercher, puisque vous pouvez tir une balle dans le pied si vous ne faites pas attention (si vous nemysql_query('...') or die(mysql_errno())
par exemple).j'étais sous l'impression que seuls les
exit(42)
ne que etdie
toujours des sorties avec0
Non, ils sont des alias:
die — Equivalent to exit()
, voir ideone.com/f7E0F. =)qui est impair. ne savais pas que
OriginalL'auteur Alix Axel
Les constructions de langage
exit()
etdie()
sont équivalentes, au moins selon le manuel PHP. J'utilise exit() lorsque cette ligne devrait être atteint et je veux que le script s'arrête à ce point. Die() sur l'autre main est pour des situations qui ne devraient pas se produire. C'est juste ce qui semble le plus naturel pour moi, vous n'avez pas à être d'accord.OriginalL'auteur Arjan
Surtout du style de codage. Toutefois, si vous générez des messages de débogage, l'echo de mourir est la meilleure:
devient
De sûr, vous auriez plus de chances d'avoir
Qui est beaucoup plus facile (mon|les) yeux de
die("The frobnusticator blew up!");
Parce que mourir de sortie peut obtenir de l'écho d'un navigateur, ce qui est bien dans le débogage, mais pas dans la production. Oui, vous feriez idéalement configurer contre cette.
Vous ne devriez pas vraiment être
die
ing dans le code de production, de toute façon.die
est commeassert
par le temps que vous avez testé des choses assez bien pour rouleau code de production, votre code doit être incapable d'atteindre unedie
déclaration.Très vrai; cependant, même le meilleur code frappe les problèmes de production - vous pourrait frapper un mourir à cause d'un disque plein, par exemple. Mais je n'étais pas en train de l'adresse de mourir vs autre chose, juste 2 formes de mourir
OriginalL'auteur Phil Lello
De manuel php :
Mais il y a encore de la différence entre mourir et sortie :
Même résultat avec l'aide de exit()
OU si vous êtes à la cli ou shell unix :
À l'aide de PHP en ligne de commande, die("Une erreur s'est produite") imprime simplement "Une erreur s'est produite" à STDOUT et termine le programme avec un code de sortie 0.
OriginalL'auteur EngineerCoder