2012-09-22 17 views
7

Tengo dos archivos distinto de cero: first.php:salida() con el mensaje de estado y salida

#!/usr/bin/php 
<?php 
exit("Unable"); //1 
#exit(1); //2 
#exit(); //or exit(0) //3 
?> 

second.php:

#!/usr/bin/php 
<?php 
exec("./first.php",$out,$err); 
var_dump($out); 
echo "\n".$err; 
?> 

Ahora, Cuando corro second.php con la línea # 1 en first.php Tengo "Unable" en $ out y 0 en $ err. pero con otras dos salidas tengo ese dígito en $ err.
¿Cómo puedo tener un valor distinto de cero en $ err cuando ejecuto la salida con un mensaje de cadena?
He probado 2> & 1 pero es inútil.

Respuesta

9
exit("hi"); 

es lo mismo que:

echo "hi"; 
exit(0); 

lo tanto, sólo se hacen eco de la declaración :)

echo "Unable"; 
exit(2); 
+1

Pienso como usted – Farhadix

0

No puede tener un código de salida de cadena. Los códigos de salida son enteros solamente.

+0

¿Debo definir una función personal_exit y al primer error de impresión y después de esa salida con el estado distinto de cero? ¿Es esta la única forma? – Farhadix

+0

@ Farhadix, sí, exactamente. – Brad

0

Puede salir con un mensaje de cadena y eso lo imprimirá en la salida estándar, pero en cuanto al código de salida, eso es un número entero, y la cadena se transformará en un 0 que es un código de salida exitoso.

0

Incluso puede llamar a una función cuando se sale.

function execute() { echo "whatever"; } 
    exit(execute()); 
0

También puede utilizar die("Unable");

+0

¿'die' sale con' 1' si le da un parámetro de cadena? – Titus

Cuestiones relacionadas