2009-05-21 44 views
5

in PHP die() fornisce qualcosa in cambio quando lo usiamo?cosa fa morire PHP() restituisce

+0

In che lingua? – kquinn

+0

Sospetto php, poiché ha quella funzione, che è un alias per exit(). Sospetto anche che non restituirà nulla, dal momento che esce dalla sceneggiatura, ma dal momento che non sono programmatore di php sto solo aggiungendo questo commento. –

+2

non restituisce nulla. Ma anche se restituisce qualcosa, quel qualcosa non può ancora essere usato per niente, dal momento che lo script sta per uscire. – andyk

risposta

22

In PHP la funzione die() ha appena terminato di eseguire lo script e stampa l'argomento (se ce n'è uno).

http://php.net/die

+4

Questo non è abbastanza preciso.Se die() viene chiamato con un argomento intero, restituisce quel valore. In un contesto web, questo potrebbe non significare molto. In uno script PHP CLI, tale valore restituito è significativo; è disponibile per l'uso nella shell. –

10

Perché non dare un'occhiata alla splendida documentazione di PHP? Contiene anche informazioni su die()

+7

Povero ragazzo. Dovrebbe cliccare * di nuovo * per vedere cosa restituisce exit(). Spoiler: la risposta è n. – Stephan202

+0

l'ho verificata, ma volevo comunque fare quella domanda perché non ero molto sicuro che qualunque cosa avessi letto fosse vera. – developer

+2

I documenti php sono * il * posto dove guardare queste cose. Nulla può essere più vero delle informazioni lì tranne che è un bug di documentazione (ma se vuoi essere * * sicuramente meglio controllare il sistema di tracciamento dei bug di php e/o eseguire un codice di test). A proposito: poiché die() termina l'esecuzione di PHP, è del tutto irrilevante, quale sia il valore di ritorno (poiché il programma si ferma in quel punto). – soulmerge

1

Non restituisce. Lo script è terminato e nient'altro viene eseguito.

1

Non c'è alcuna ragione per restituire qualcosa in die/uscita. Questa funzione termina il processo dell'interprete php all'interno e restituisce il codice di uscita alla shell. Quindi, dopo aver chiamato die() non c'è esecuzione di script fino a quando non c'è un processo di interprete che esegue lo script ed è per questo che non c'è modo di gestire il ritorno della funzione.

8

Ovviamente, die() o equivalente exit() non restituire nulla allo script stesso; per essere precisi, questo codice non ha molto senso:

if (die())) { 
    echo 'are we dead yet?'; 
} 

Tuttavia, a seconda di ciò che si passa come il (opzionale) argomentazione della die() o exit(), si fa restituire qualcosa al chiamante, vale a dire la comando che ha causato l'esecuzione dello script. Il suo uso pratico è di solito limitato allo cli SAPI, tuttavia, quando si chiama lo script da una riga di comando utilizzando php /path/to/script.php.

Osservare:

die('goodbye cruel world'); 

Questo codice sarebbe stampare goodbye cruel world e poi restituire un exit status code di 0, segnalando al chiamante che il processo è terminato normalmente.

altro esempio:

die(1); 

Quando si passa un valore intero anziché una stringa, non viene stampato e il codice di stato di uscita sarà 1, segnalando al chiamante che il processo non termina normalmente.

Infine, die() senza argomenti è uguale a die(0).

Lo stato di uscita di un processo può essere modificato per segnalare diversi tipi di errori che possono essersi verificati, ad es. 1 significa errore generale, 2 significa nome utente non valido, ecc.