Zephir\Optimizers\FunctionCall\IsPrivatePropertyOptimizer::optimize PHP Method

optimize() public method

public optimize ( array $expression, Call $call, Zephir\CompilationContext $context ) : boolean | Zephir\CompiledExpression | mixed
$expression array
$call Zephir\Call
$context Zephir\CompilationContext
return boolean | Zephir\CompiledExpression | mixed
    public function optimize(array $expression, Call $call, CompilationContext $context)
    {
        if (!isset($expression['parameters'])) {
            return false;
        }
        if (count($expression['parameters']) != 1) {
            return false;
        }
        $context->headersManager->add('kernel/object');
        $resolvedParams = $call->getReadOnlyResolvedParams($expression['parameters'], $context, $expression);
        return new CompiledExpression('bool', 'zephir_is_private_prop(' . $resolvedParams[0] . ')', $expression);
    }
IsPrivatePropertyOptimizer