EvaluateExpression($oExpr->var); if (is_null($oVar)) { return null; } $aArgs=[]; foreach ($oExpr->args as $arg){ /** @var \PhpParser\Node\Arg $arg */ $aArgs[]=$arg->value->value; } if ($oExpr->name instanceof Identifier){ $sName = $oExpr->name->name; } else { $sName = PhpExpressionEvaluator::GetInstance()->EvaluateExpression($oExpr->name); } $oReflectionClass = new ReflectionClass(get_class($oVar)); try{ $oMethod = $oReflectionClass->getMethod($sName); if ($oMethod->isPublic()){ return $oMethod->invokeArgs($oVar, $aArgs); } } catch (\ReflectionException $t) {} return null; } }