original_string: public function assign($name, $val = null)
  	{
  		if (is_array($name)) {
  			reset($name);
  			while (list($k,$v) = each($name))
  				$this->data[$k] = $v;
  		} else {
  			$this->data[$name] = $val;
  		}
  	}
code: public function assign($name, $val = null)
  	{
  		if (is_array($name)) {
  			reset($name);
  			while (list($k,$v) = each($name))
  				$this->data[$k] = $v;
  		} else {
  			$this->data[$name] = $val;
  		}
  	}
code_tokens: public function assign ( $ name , $ val = null ) { if ( is_array ( $ name ) ) { reset ( $ name ) ; while ( list ( $ k , $ v ) = each ( $ name ) ) $ this -> data [ $ k ] = $ v ; } else { $ this -> data [ $ name ] = $ val ; } }
docstring: assigns a value or an array of values to the data object
  
  @param array|string $name an associative array of multiple (index=>value) or a string
  that is the index to use, i.e. a value assigned to "foo" will be
  accessible in the template through {$foo}
  @param mixed $val the value to assign, or null if $name was an array
docstring_tokens: assigns a value or an array of values to the data object