src/eMacros/Runtime/Collection/ArrayPush.php
public function apply(Scope $scope, GenericList $arguments) {
		$nargs = count($arguments);
		if ($nargs == 0) throw new \BadFunctionCallException("ArrayPush: No target specified.");
		elseif ($nargs == 1) throw new \BadFunctionCallException("ArrayPush: No values specified.");
		$target = $arguments[0];
		if (!($target instanceof Symbol))
			throw new \InvalidArgumentException(sprintf("ArrayPush: Expected symbol as first argument but %s was found instead.", substr(strtolower(strstr(get_class($arguments[0]), '\\')), 1)));
		$ref = $target->symbol;
		
		if (is_array($scope->symbols[$ref]) || $scope->symbols[$ref] instanceof \ArrayObject) {
			$args = [];
			$it = $arguments->getIterator();
			$it->rewind();
			for ($it->next(); $it->valid(); $it->next())
				$args[] = $it->current()->evaluate($scope);
			
			if (is_array($scope->symbols[$ref])) {
				foreach ($args as $arg)
					array_push($scope->symbols[$ref], $arg);
			}
			else {
				$arr = $scope->symbols[$ref]->getArrayCopy();
				foreach ($args as $arg)
					array_push($arr, $arg);
				$scope->symbols[$ref]->exchangeArray($arr);
			}
			
			return count($scope->symbols[$ref]);
		}
		
		throw new \InvalidArgumentException(sprintf("ArrayPush: Expected array as first argument but %s was found instead.", gettype($scope->symbols[$ref])));
	}
public function apply(Scope $scope, GenericList $arguments) {
		$nargs = count($arguments);
		if ($nargs == 0) throw new \BadFunctionCallException("ArrayPush: No target specified.");
		elseif ($nargs == 1) throw new \BadFunctionCallException("ArrayPush: No values specified.");
		$target = $arguments[0];
		if (!($target instanceof Symbol))
			throw new \InvalidArgumentException(sprintf("ArrayPush: Expected symbol as first argument but %s was found instead.", substr(strtolower(strstr(get_class($arguments[0]), '\\')), 1)));
		$ref = $target->symbol;
		
		if (is_array($scope->symbols[$ref]) || $scope->symbols[$ref] instanceof \ArrayObject) {
			$args = [];
			$it = $arguments->getIterator();
			$it->rewind();
			for ($it->next(); $it->valid(); $it->next())
				$args[] = $it->current()->evaluate($scope);
			
			if (is_array($scope->symbols[$ref])) {
				foreach ($args as $arg)
					array_push($scope->symbols[$ref], $arg);
			}
			else {
				$arr = $scope->symbols[$ref]->getArrayCopy();
				foreach ($args as $arg)
					array_push($arr, $arg);
				$scope->symbols[$ref]->exchangeArray($arr);
			}
			
			return count($scope->symbols[$ref]);
		}
		
		throw new \InvalidArgumentException(sprintf("ArrayPush: Expected array as first argument but %s was found instead.", gettype($scope->symbols[$ref])));
	}
Pushes the given parameter onto the end of an array
Usage: (Array::push _arr 20 10)
Returns: int
(non-PHPdoc)
@see \eMacros\Applicable::apply()