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

就我个人而言,我将所有代码作为一个可能引发异常的函数。然后调用该函数捕获异常。如果是实时(生产),则在收到异常时生成适当的页面和日志详细信息。否则(测试/开发)将这些细节放在页面上。

于 2013-02-15T17:58:57.887 回答
1

我倾向于选择类似的东西:

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

perl 风格也很好,尽管我相信 fopen 会引发错误。

于 2013-02-15T17:59:05.380 回答