facebook / facebook/hhvm

Inconsistency with PHP regarding closures and reflection

Open
#3,874 1 comment 0 reactions 1 assignee Claimed by @paulbiss View on GitHub
php5 incompatibility
Dominant language
C++
Stars
18.7k
Forks
3.1k
Avg merge
1h 47m
Merged PRs (30d)
2

Description

`new ReflectionFunction($closure)` seems to work as expected. However, in one case I am doing `$reflectionFunction->getParameters()` and then doing `$reflectionParameter->getDefiningFunction()`, which returns a ReflectionMethod instance in PHP (why not ReflectionFunction? no idea) that behaves differently from the original ReflectionFunction.
- `isClosure()` returns false
- `getClosureScopeClass()` returns null
- `getDeclaringClass()` returns something like "Closure$Namespace\Class::method;0000000".

http://3v4l.org/VgIeT

Some of this behaviour seems really quirky in PHP already and I can't imagine it's a high priority fix, but I thought I'd let you know.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.