Well, in PHP it's not as clear cut as in more structured languages. The general idea of global = bad is that you may be clobbering other instances of a variable with the same name. If access to a variable is required in an area of the program where said variable is out of scope, then the variable should be accessed via a pointer (not sure if this is possible in PHP...) or a pass by reference. If only one variable needs to be changed, then you can, of course, modify it using a return value.
I have not been programming PHP for very long. However, because of my background in strongly-typed languages, I tend to stay away from global variables. You can achieve the same effect by registering the variable in a session, and then you can always know exactly what variable you are accessing (by using session_is_registered(), etc). Even this is a bit too close to global variables for my comfort, but there really aren't other options unless you want to pass them via the address to the page (is that GET or POST method? I can never remember...), which tends to make things even more cluttered and confusing.
In addition, global variables tend to make code harder to follow, especially if someone else will be maintaining your code in the future.
Hopefully this was at least somewhat helpful... if my ramblings were completely incoherent, let me know and I'll try to post my thoughts a bit more concisely.
Cheers,
Will