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
È stato utile?

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

try / funzioni di cattura .

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
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top