Diferencia entre 'morir' y 'salir' [duplicado]
Pregunta
Posible duplicado:
¿Cuáles son las diferencias entre die() y exit() en PHP?
Estoy totalmente confundido en la diferencia de die
y exit
.
La mayoría de los programadores utilizan die
como esto.
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); //don't see mysql_* problem it is just example
if (!$link) {
die('Could not connect: ' . mysql_error());
}
y usando exit
como esto
$filename = '/path/to/data-file';
$file = fopen($filename, 'r')
or exit("unable to open file ($filename)");
Según su funcionalidad, no creo que haya ninguna diferencia porque ambas finalizan la ejecución del script.
Mi pregunta es
1) ¿Puedo intercambiar morir con salida y viceversa en estos ejemplos?
2) Y la diferencia entre estos también.
Salud...
Solución
Según die es equivalente a salir .Así que sí, puedes intercambiarlos.
Otros consejos
Al usar la línea de comando,
die("Error");
Se imprimirá como "Error" para STDOUT
y salgo con código de error 0
.
si quieres salir con código de error 1
, tienes que:
fwrite(STDERR, "Error");
exit(1);
Podría ser útil al ejecutar scripts php desde la línea de comandos o scripts de shell y desea ver si el script terminó con un código de salida distinto de cero.
Ésa es una diferencia que se me ocurre.
PDInformación anterior obtenida de php.net/exit
No hay diferencia entre la función DIE () y SALIR (). Ambos son iguales y funcionan igual.
La pregunta de nuevo es la razón por la que PHP mantiene ambas funciones si son iguales. Ambas funciones son alias de la función.
Debido a la API y manteniendo la compatibilidad con atraso Ambas funciones se mantienen.
Aquí hay un ejemplo más:
is_int () e is_integer () también son iguales.
Hay bastantes funciones en PHP que puede llamar con más de un nombre. En algunos casos, no hay un nombre preferido entre los múltiples, IS_INT () y IS_INTEGER () son igualmente buenos, por ejemplo. Sin embargo, hay funciones que cambian de nombre debido a una limpieza de API o alguna otra razón y los nombres antiguos solo se mantienen como alias para la compatibilidad hacia atrás. Por lo general, es una mala idea usar este tipo de alias, ya que pueden estar vinculados a la obsolescencia o al cambio de nombre, lo que conducirá a un guión poco adecuado. Esta lista se proporciona para ayudar a aquellos que desean actualizar sus viejos scripts a la sintaxis más nueva.
Lista completa de funciones de alias de alias que encontrará en la siguiente URL:
http://php.net/manual/en/aliases.php
Que esto lo ayudará :)
die
es alias de la función exit
.
Hay muchos alias de función en PHP, debido a cómo el lenguaje ha evolucionado, evoluciona y también lo supera: http://www.php.net/manual/en/aliases.php .
Die imprime el argumento a STDOUT, no a STDERR (GREP o 2> / dev / null te ayudará a probarlo) Die vuelve al código de salida de Shell como 0, pero la salida puede devolver otro código Deje que definen el análogo completo en PHP:
function mydie($str){
echo $str.PHP_EOL;
exit(0);
}