PHP Manual
/
高级开发员

不适当地使用垃圾收集器

11. 02. 2023

你是一个大型遗留应用程序的开发者,你正在逐步将PHPStan引入其中。你从0级开始,这相当具有挑战性,但最终你会得到它。你进入下一个层次,你的代码的一部分开始报告一个未使用的$lock变量,你应该删除它。

代码看起来像这样。

public function processOrder(int $orderId): void
{
$lock = Lock::createLock('订单-' . $orderId);
// 这里有一些逻辑...
}

你告诉自己,一定有一个锁存储在变量中,后来有人忘了释放,或者也许它发生在后来被调用的其他方法中。所以你决定删除这个未使用的变量,只保留对创建锁的静态方法的调用。

这个决定会不会造成关键的错误?

如果是这样,为什么,原来的机制可能是如何运作的?

如果没有,为什么没有,你怎么知道这始终是一个安全的操作?

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
8.
Status:
All systems normal.
2024