Because the variable will be assigned to only one marker. An easy solution is storing the markers in a table:
local teleportMarkers = {}
teleportMarkers[k] = {
createMarker(inX, inY, inZ, "cylinder", 1, 0, 255, 0, 180), -- inside
createMarker(outX, outY, outZ, "cylinder", 1, 255, 0, 0, 150) -- outside
}
addEventHandler( "onMarkerHit", teleportMarkers[k][1], function ( hitElement, matchingDimension )
setElementPosition(hitElement, outX, outY + 3, outZ)
end)
addEventHandler( "onMarkerHit", teleportMarkers[k][2], function ( hitElement, matchingDimension )
setElementPosition(hitElement, inX, inY, inZ)
end)
-- * everything except the table inside the loop * --