A few random thoughts in no particular order...
I avoid using "global" in my functions at all costs. I'm a dog person, but I don't like seeing kittens needlessly killed. 😉
If you find yourself needing to pass more than a few parameters to a given function, it may be time to ask yourself if that function is trying to do too many things and should instead be broken up into two or more functions.
If you have several related variables and multiple functions associated with them, this is almost crying out to be assembled into a class.
For values that truly make sense to be global in scope, if the they are static then define() them as constants, in which case they will then automatically be global in scope. If they are variable, consider using the $GLOBALS super-global array.
Similar to the preceding, you can define class constants and/or static variables that are easily accessed from anywhere in your application, e.g. ClassName::$staticVariablename.