code: public function assign($key, $value)
      {
          if ($this->$key === false) {
              $this->all[$key] = $value;
          } elseif (! is_array($this->$key)) {
              $this->all[$key] = array($this->$key, $value);
          } else {
              $this->all[$key][] = $value;
          }
      }
docs: Sets the value in the argments object. If multiple values are added under
  the same key, the key will give an array value in the order they were
  added.
  
  @param string $key The variable to assign to.
  @param string value   The value that would norally be colected on the
  command line.