input: Write a function to perform a string slicing operation in Python that takes a string and start and end index, and returns the sliced substring. If the start or end index is out of the string's range, return an empty string. If the end index is less than the start index, return the substring from the end index to the start index. The function should handle edge cases such as empty strings or indexes out of range without raising exceptions.
  def slicing(string, start, end):
      if start >= end:
          return string[end:start]
      if start < 0 or start >= len(string) or end > len(string):
          return ""
      return string[start:end]
  
  assert slicing("This is a slicing test", 8, 15)=="slicing"
  assert slicing("Hello, World!", 7, 5)==""
  assert slicing("Python Programming", 10, 23)==""
  assert slicing("", 0, 0)==""
  assert slicing("Short", 1, 1)==""
output: def slicing(string, start, end):
      if start >= end:
          return string[end:start]
      if start < 0 or start >= len(string) or end > len(string):
          return ""
      return string[start:end]