0

if/elsePHP 関数が失敗した場合のステートメントを作成するにはどうすればよいですか? 機能する場合は 1 つの方法を定義し$results、機能しない場合は別の方法を定義する必要があります。単にエラーを表示したり、失敗した場合にエラー メッセージを強制終了したりしたくありません。

現在、私は持っています:

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

3 に答える 3

2

PHP のtry/catch 関数が必要です。

それは次のようになります:

try {
    // your functions
}
catch (Exception e){
    //fail gracefully
}
于 2009-08-06T20:20:43.553 に答える
1
if(@file_get_contents("http://www.address.com");){
    $results = "うまくいきました";}
そうしないと {
    $results = "それはしませんでした";}
$結果を返す

関数の先頭に @ を付けることで、エラー メッセージを抑制することができます。

于 2009-08-06T20:21:47.090 に答える
0

伝染性が言ったように、関数が例外をスローした場合、try/catch関数はうまく機能します。しかし、あなたが探しているのは、関数の結果を処理するための良い方法であり、必ずしも例外をスローした場合ではなく、期待される結果を返すと思います。file_get_contentsが例外をスローするとは思わないが、falseを返すだけだ。

あなたのコードはうまくいくでしょう、しかし私は余分なことに気づきました; ifステートメントの最初の行。

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

また、関数呼び出しの結果を変数に格納して、後で使用できるようにすることもできます。

$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
}
于 2009-08-06T20:34:27.610 に答える