PHPSA\Compiler\Expression\ArrayOp::compile PHP Метод

compile() защищенный Метод

[] array()
protected compile ( PhpParser\Node\Expr\Array_ $expr, Context $context ) : CompiledExpression
$expr PhpParser\Node\Expr\Array_
$context PHPSA\Context
Результат PHPSA\CompiledExpression
    protected function compile($expr, Context $context)
    {
        $compiler = $context->getExpressionCompiler();
        if ($expr->items === []) {
            return new CompiledExpression(CompiledExpression::ARR, []);
        }
        $resultArray = [];
        foreach ($expr->items as $item) {
            $compiledValueResult = $compiler->compile($item->value);
            if ($item->key) {
                $compiledKeyResult = $compiler->compile($item->key);
                switch ($compiledKeyResult->getType()) {
                    case CompiledExpression::INTEGER:
                    case CompiledExpression::DOUBLE:
                    case CompiledExpression::BOOLEAN:
                    case CompiledExpression::NULL:
                    case CompiledExpression::STRING:
                        $resultArray[$compiledKeyResult->getValue()] = $compiledValueResult->getValue();
                }
            } else {
                $resultArray[] = $compiledValueResult->getValue();
            }
        }
        return new CompiledExpression(CompiledExpression::ARR, $resultArray);
    }
ArrayOp