2

我想知道这两者之间的技术区别是什么:

error_log('test', 3, 'test.txt');

相对

file_put_contents('test.txt', 'test', FILE_APPEND);

然而,它们似乎都花费了相同的时间。

4

1 回答 1

2

具体而言,文档所说的(file_put_contentserror_logerror_log('test', 3, 'test.txt') )之间没有区别,因为两者都只会将其附加到文件中。file_put_contents('test.txt', 'test', FILE_APPEND)

函数之间的主要区别在于,它们不仅error_log可以记录到文件,还可以发送到 PHP 的系统记录器、将错误作为电子邮件发送或将其发送到 SAPI 日志记录处理程序(如果您设置014.

Usingfile_put_contents允许指定字符串、数组或流资源,而error_log只允许指定字符串作为消息。这可能会产生影响,具体取决于您要记录的数据,但是您的示例只是一个字符串,因此它没有任何重要性。

如果像在您的示例中一样,您正在将简单的字符串错误消息写入文件,它们将具有相同的最终结果。尽管如此,我还是建议使用error_log它,因为它可以让以后更轻松地转换为发送电子邮件,并且函数名称更适合其代码未来维护者的任务。

如果您不打算使用它来编写错误消息(我之所以这么说是因为问题标题中的单词选择 - “当存储数据时......”与“当存储错误时......”),我建议file_put_contents在上面的段落中使用类似的原因,因为函数名称更适合未来代码维护者的任务。

于 2013-06-22T09:11:09.940 回答