stdClass and anonymous function

php, stdclass

Solution

You can use `__invoke()` :

// declare $namespace to be conform to strict standards
$namespace = new StdClass();

$namespace->func = function() {
      return "Hello World";
 };
var_dump($namespace->func->__invoke());

That's because even if a property `func` exists which is a closure, PHP will not check if it is a closure and call it.

Problem

I can do this with anonymous function ``` $func = function() { return "Hello World"; }; var_dump($func()); ``` However, I cannot do this ``` $namespace->func = function() { return "Hello World"; }; var_dump($namespace->func()); ``` I will get this error Call to undefined method stdClass The workaround that I have discovered so far is to use another variable ``` $temp = $namespace->func; var_dump($temp()); ``` Is there a way that I can do it in one line?

Original source