Library/SymbolTable.php
public function addVariable($type, $name, CompilationContext $compilationContext)
    {
        $currentBranch = $compilationContext->branchManager->getCurrentBranch();
        $branchId = $currentBranch->getUniqueId();
        if ($this->globalsManager->isSuperGlobal($name) || 'zephir_fcall_cache_entry' == $type) {
            $branchId = 1;
        }

        $varName = $name;
        if ($branchId > 1 && Branch::TYPE_ROOT != $currentBranch->getType()) {
            $varName = $name.Variable::BRANCH_MAGIC.$branchId;
        }

        $variable = new Variable($type, $varName, $currentBranch);

        /*
         * Checks whether a variable can be optimized to be static or not
         */
        if ('variable' == $type && $this->localContext && $this->localContext->shouldBeLocal($name)) {
            $variable->setLocalOnly(true);
        }

        if (!isset($this->branchVariables[$branchId])) {
            $this->branchVariables[$branchId] = [];
        }

        $this->branchVariables[$branchId][$name] = $variable;

        return $variable;
    }
public function addVariable($type, $name, CompilationContext $compilationContext)
    {
        $currentBranch = $compilationContext->branchManager->getCurrentBranch();
        $branchId = $currentBranch->getUniqueId();
        if ($this->globalsManager->isSuperGlobal($name) || 'zephir_fcall_cache_entry' == $type) {
            $branchId = 1;
        }

        $varName = $name;
        if ($branchId > 1 && Branch::TYPE_ROOT != $currentBranch->getType()) {
            $varName = $name.Variable::BRANCH_MAGIC.$branchId;
        }

        $variable = new Variable($type, $varName, $currentBranch);

        /*
         * Checks whether a variable can be optimized to be static or not
         */
        if ('variable' == $type && $this->localContext && $this->localContext->shouldBeLocal($name)) {
            $variable->setLocalOnly(true);
        }

        if (!isset($this->branchVariables[$branchId])) {
            $this->branchVariables[$branchId] = [];
        }

        $this->branchVariables[$branchId][$name] = $variable;

        return $variable;
    }
public function addVariable ( $ type , $ name , CompilationContext $ compilationContext ) { $ currentBranch = $ compilationContext -> branchManager -> getCurrentBranch ( ) ; $ branchId = $ currentBranch -> getUniqueId ( ) ; if ( $ this -> globalsManager -> isSuperGlobal ( $ name ) || 'zephir_fcall_cache_entry' == $ type ) { $ branchId = 1 ; } $ varName = $ name ; if ( $ branchId > 1 && Branch :: TYPE_ROOT != $ currentBranch -> getType ( ) ) { $ varName = $ name . Variable :: BRANCH_MAGIC . $ branchId ; } $ variable = new Variable ( $ type , $ varName , $ currentBranch ) ; /*
         * Checks whether a variable can be optimized to be static or not
         */ if ( 'variable' == $ type && $ this -> localContext && $ this -> localContext -> shouldBeLocal ( $ name ) ) { $ variable -> setLocalOnly ( true ) ; } if ( ! isset ( $ this -> branchVariables [ $ branchId ] ) ) { $ this -> branchVariables [ $ branchId ] = [ ] ; } $ this -> branchVariables [ $ branchId ] [ $ name ] = $ variable ; return $ variable ; }
Adds a variable to the symbol table.

@param int                $type
@param string             $name
@param CompilationContext $compilationContext

@return Variable
Adds a variable to the symbol table .