0

私はいくつかの関数でこのようなコードをたくさん書いています:

$f = fopen($fname);

if ($f === false) {
    throw new Exception("cannot open $fname");
}

多くのファイルを開いて処理する場合、これは冗長です。これが予期しない悪い副作用なしに機能するかどうか疑問に思っています:

$f = fopen($fname) or die("cannot open $fname");

これは Perl では慣用的ですが、PHP では正しいですか? それを行う別のより良い方法はありますか?それは有効に思えますが、PHP が多くの予想外の方法であなたを苦しめる可能性があることを私は知っています。

4

2 に答える 2

1

私は次のようなものを選ぶ傾向があります:

if(!($f = @fopen($fname, 'r'))) {
    throw new Exception("cannot open $fname");
}

fopen ではエラーが発生すると思いますが、perl スタイルも問題ありません。

于 2013-02-15T17:59:05.380 に答える
1

個人的には、例外をスローする可能性のある関数としてすべてのコードを作成します。次に、その関数を呼び出して例外をキャッチします。ライブ (本番) の場合は、例外を受け取り次第、適切なページとログの詳細を生成します。それ以外の場合 (テスト/開発)、それらの詳細をページに追加します。

于 2013-02-15T17:58:57.887 に答える