My pitfall was in conjunction with empty(), citing php.net:

> Note: Because this is a language construct and not a function, it
cannot be called using variable functions.

That's why I am careful with this now.