Variables work the same. Before, you probably had register_globals on. Essentially, this means PHP extracts all variables from GET, POST, SESSION, etc into their appropriate variable names for you. This is, however, considered a security risk. For more information, you can search this board for keywords such as "register globals" or "register_globals".
Also, are you sure the parse errors are because of my code? I just double checked it on my server and it works fine.
Lastly, the only time you'll have to manually global-ize a variable is if it is outside the scope (i.e. you're inside a function declaration when you're trying to use a variable previously defined outside of that declaration). While this may be the case, I'm not sure whether you would need to do this or not.