Come gestire l'errore funzione PHP?
-
12-09-2019 - |
Domanda
Come faccio a formare una dichiarazione if/else
per una funzione PHP fallendo? Voglio che definire $results
un modo se funziona e un altro se non lo fa. Io non voglio mostrare semplicemente un errore o uccidere il messaggio di errore se non riesce.
Al momento, ho:
if(file_get_contents("http://www.address.com")){
$results = "it worked";}
else {
$results = "it didnt";}
return $results
Soluzione
if(@file_get_contents("http://www.address.com");){ $results = "it worked";} else { $results = "it didnt";} return $results
Per anteponendo una @ a una funzione, è possibile surpress il suo messaggio di errore.
Altri suggerimenti
va qualcosa come:
try {
// your functions
}
catch (Exception e){
//fail gracefully
}
Come contagiosa detto, una funzione try / catch funziona bene se la funzione genera un'eccezione. Ma, penso che quello che stai cercando è un buon modo per gestire il risultato di una funzione restituisce il risultato atteso, e non necessariamente se viene generata un'eccezione. Non credo che file_get_contents sarà un'eccezione, ma piuttosto solo return false.
Il tuo codice avrebbe funzionato bene, ma ho notato un extra; nella prima riga del vostro if.
if (file_get_contents("http://www.address.com")) {
$results = "it worked";
} else {
$results = "it didnt";
}
return $results;
Inoltre, è possibile memorizzare il risultato di una chiamata di funzione in una variabile in modo da poter utilizzare in un secondo momento.
$result = file_get_contents("http://www.address.com");
if ($result) {
// parse your results using $result
} else {
// the url content could not be fetched, fail gracefully
}