*/ class CallTimePassByReferencePass extends CodeCleanerPass { const EXCEPTION_MESSAGE = 'Call-time pass-by-reference has been removed'; /** * Validate of use call-time pass-by-reference. * * @throws RuntimeException if the user used call-time pass-by-reference in PHP >= 5.4.0 * * @param Node $node */ public function enterNode(Node $node) { if (version_compare(PHP_VERSION, '5.4', '<')) { return; } if (!$node instanceof FuncCall && !$node instanceof MethodCall && !$node instanceof StaticCall) { return; } foreach ($node->args as $arg) { if ($arg->byRef) { throw new FatalErrorException(self::EXCEPTION_MESSAGE, 0, E_ERROR, null, $node->getLine()); } } } }