2012-09-22 15 views
7

Ho due file di uscita: first.php:exit() con il messaggio e stato diverso da zero

#!/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; 
?> 

Ora, Quando eseguo second.php con la riga n. 1 in first.php ho "Unable" in $ out e 0 in $ err. ma con altre due uscite ho quella cifra in $ err.
Come posso avere zero in $ err quando eseguo exit con un messaggio stringa?
Ho provato 2> & 1 ma è inutile.

risposta

9
exit("hi"); 

è la stessa:

echo "hi"; 
exit(0); 

Quindi, solo eco la dichiarazione :)

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

Penso che tu sia – Farhadix

0

Non è possibile avere un codice di uscita stringa. I codici di uscita sono solo numeri interi.

+0

Devo definire una funzione personal_exit e al primo errore di stampa e dopo che l'uscita con stato diverso da zero? È questo solo modo? – Farhadix

+0

@Farhadix, Sì, esattamente. – Brad

0

È possibile uscire con un messaggio di stringa e questo lo stamperà sullo standard output, ma come per il codice di uscita, questo è un numero intero e la stringa verrà trasformata in uno 0 che è un codice di uscita riuscito.

0

Si può anche chiamare una funzione quando si esce.

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

È inoltre possibile utilizzare die("Unable");

+0

Fa 'die' esci con' 1' se gli dai un parametro stringa? – Titus

Problemi correlati