Nun, in Ihrer ersten Datei haben Sie einen global deklariert Variable global $conn; Ich weiß nicht genau warum, aber trotzdem würde das ohne Probleme funktionieren, da $conn im globalen Geltungsbereich ist.
Aber in Ihrem zweiten Fall, wenn Sie Ihren global deklarieren Variable innerhalb einer Funktion, würde die Funktion nach $conn suchen die im globalen Gültigkeitsbereich statt der lokalen Variable $conn ist die anscheinend das Verbindungshandle hat.
entfernen Sie das global $conn von Ihrer Funktion und es sollte funktionieren.
Weitere Informationen zu Gültigkeitsbereichen von Variablen - https://php.net/manual/en /language.variables.scope.php