这个问题没有一个简单的答案。优化和性能在很大程度上取决于您的特定代码库、它运行的平台、服务器上运行的其他内容等等。
首先,您的场景太模糊,无法提供足够的答案。但是,要触及一些先前的评论/担忧......
PHP 没有非常明确的垃圾收集规则。在 THEORY 场景中,由于垃圾收集,函数退出时 A 将释放内存。实际上,这种情况很少发生。有许多触发器会导致垃圾回收释放该内存,但在幕后,实际的低级 free() 和 mallocs() 并没有被淘汰。如果您仔细观察内存堆栈,您会发现在函数退出后,$file1、$file2、$file3 的内存空间将保留。有时直到整个应用程序退出。
您的应用程序构建还将确定哪个更快,在符号表中为 $file1、$file2、$file3 创建一个新条目或反复使用 $fp。在理论上,再次使用 $fp 通常意味着不需要重新分配内存空间,并且不需要重新创建新的符号表条目和相应的管理对象。然而,这并非总是如此。有时重新使用 $fp 实际上可能会更慢,因为需要先调用销毁,然后重新创建对象。在某些极端情况下,在迭代过程中创建一个新的 $file1、$file2、$file3 并让垃圾收集一次发生可能会更快。
所以,这一切的底线......
您需要在其原生环境中分析和测试您自己的应用程序,以了解事物在您的 Playground 中的行为方式。它很少是“总是这样做”或“从不这样做”的场景。