我想知道这两者之间的技术差异是什么:
error_log('test', 3, 'test.txt');
与
file_put_contents('test.txt', 'test', FILE_APPEND);
然而,他们似乎都花了相同的时间。
答案 0 :(得分:2)
特别是在error_log('test', 3, 'test.txt')
和file_put_contents('test.txt', 'test', FILE_APPEND)
之间,文档所说的内容(file_put_contents和error_log)没有区别,因为它们只会将其附加到文件中。
这些函数之间的主要区别在于error_log
可以做的不仅仅是登录到能够发送到PHP的系统记录器的文件,将错误作为电子邮件发送或者如果设置的话将其发送到SAPI日志记录处理程序0
,1
或4
。
使用file_put_contents
允许指定字符串,数组或流资源,而error_log
仅允许指定字符串作为消息。这可能会产生影响,具体取决于您要记录的数据,但您的示例只是一个字符串,因此它没有任何重要性。
如果在您的示例中,您正在向文件写入简单的字符串错误消息,那么它们将具有相同的最终结果。尽管如此,我建议使用error_log
,因为它允许以后更容易转换为发送电子邮件消息,并且函数名称更适合其未来维护代码的任务。
如果你不打算用它来编写错误信息(我只是说这是因为问题标题中选择了单词 - “存储数据时 ...”vs “当存储错误 ...”时,我建议在上面的段落中出于类似的原因使用file_put_contents
,因为函数名称更适合未来代码维护者的任务。