original_string: public function push($varName, $tail)
      {
          if (false === $this->has($varName)) {
              $this->set($varName, null);
          }
          if (!isset($this->varStack[json_encode($varName)])) {
              $this->varStack[json_encode($varName)] = array();
          }
          array_push($this->varStack[json_encode($varName)], $this->get($varName));
          $this->set($varName, $tail);
      }
code: public function push($varName, $tail)
      {
          if (false === $this->has($varName)) {
              $this->set($varName, null);
          }
          if (!isset($this->varStack[json_encode($varName)])) {
              $this->varStack[json_encode($varName)] = array();
          }
          array_push($this->varStack[json_encode($varName)], $this->get($varName));
          $this->set($varName, $tail);
      }
code_tokens: public function push ( $ varName , $ tail ) { if ( false === $ this -> has ( $ varName ) ) { $ this -> set ( $ varName , null ) ; } if ( ! isset ( $ this -> varStack [ json_encode ( $ varName ) ] ) ) { $ this -> varStack [ json_encode ( $ varName ) ] = array ( ) ; } array_push ( $ this -> varStack [ json_encode ( $ varName ) ] , $ this -> get ( $ varName ) ) ; $ this -> set ( $ varName , $ tail ) ; }
docstring: Push a var on a local stack by it's name.
  
  @param string $varName
  @param string $tail
  @return void
docstring_tokens: Push a var on a local stack by it s name .