Look into closure with ReflectionFunction class

Let's create closure:

class Example {
  function get($arg) {
    return function() use ($arg) {
      return $arg;
    }
  }
}

$closure = (new Example())->get("value"); 

Take a $this attribute:

$ref = new \ReflectionFunction($closure);
$refThis = $ref->getClosureThis();

Take scope variables from use statement:

$refUse = $ref->getStaticVariables();
assertEquals($closure(), $refUse['arg']);