throws Throwable
  public Value array_merge(Value []args)    throws Throwable  {    // quercus/1731    ArrayValue result = new ArrayValueImpl();    for (Value arg : args) {      if (arg.isNull())	return NullValue.NULL;            if (! (arg.toValue() instanceof ArrayValue))        continue;      ArrayValue array = (ArrayValue) arg.toValue();      for (Map.Entry<Value, Value> entry : array.entrySet()) {        Value key = entry.getKey();        Value value = entry.getValue();        if (key.isNumberConvertible())          result.put(value);        else          result.put(key, value);      }    }    return result;  }