phplang/scope-exit

C++ 中 SCOPE_EXIT 构造的模拟

1.0.0 2016-09-17 00:15 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:42:14 UTC


README

这个简单的类提供了 C++ 的 SCOPE_EXIT 或 GoLang 的 defer 的实现。

使用时,将此对象的实例分配给一个局部变量。当该变量超出作用域(或显式 unset)时,将调用构造函数中传递的回调函数。例如,这有助于在函数结束时进行清理。

function f(&$x) {
  $x = 1;
  $_ = new \PhpLang\ScopeExit(function() use (&$x) { $x = 2; });
  // $x is still 1 at this point.
  return 42;
  // After the return, the local scope is cleaned up, the closure is invoked, and it's set to 2
}

f($a);
var_dump($a); // int(2)