PHP işlevi hatayı işlemek nasıl?

3 Cevap php

Nasıl başarısız bir PHP fonksiyonu için if/else deyimi oluşur? Ben eğer bu olmuyorsa o $results bir şekilde çalıştığını ve eğer başka tanımlamak istiyorum. Ben sadece bir hata göstermek ya da başarısız olursa hata mesajı öldürmek istemiyorum.

Şu anda, ben var:

if(file_get_contents("http://www.address.com")){
    $results = "it worked";}
else {
    $results = "it didnt";}
return $results

3 Cevap

if(@file_get_contents("http://www.address.com");){
    $results = "it worked";}
else {
    $results = "it didnt";}
return $results

Bir işlevin bir @ prepending tarafından, onun hata mesajı surpress olabilir.

İstediğiniz PHP'nin try/catch functions.

gibi bir şey gider:

try {
    // your functions
}
catch (Exception e){
    //fail gracefully
}

Gibi bulaşıcı işlevi bir istisna atar bir try / catch fonksiyonu iyi çalışır, dedi. Ama, ne arıyorsun bu bir istisna atar bir fonksiyonun sonucunu işlemek için iyi bir yol mutlaka değil beklenen sonuç verir, ve olduğunu düşünüyorum. Ben file_get_contents bir istisna olacağını düşünüyorum, ama değil sadece yanlış dönüş yok.

Sizin kod iyi çalışır, ama ben ekstra bir fark; Lütfen eğer deyimi ilk satırında.

if (file_get_contents("http://www.address.com")) {
    $results = "it worked";
} else {
    $results = "it didnt";
}
return $results;

Daha sonra kullanabilirsiniz böylece Ayrıca, bir değişkene bir işlev çağrısının sonucu saklayabilirsiniz.

$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
}