This simply means that it is available in all scopes throughout a script.
There is no need to do global $variable; to access it within functions or methods.
If you are referring to your element ID in the POST array, it won't work.
One feature of PHP's processing of POST and GET variables is that it automatically decodes indexed form variable names.
I've seem innumerable projects that jump through extra & un-needed processing hoops to decode variables when PHP does it all for you: Example pseudo code: Many web sites do this: When they could do this: With the first example you'd have to do string parsing / regexes to get the correct values out so they can be married with other data in your app... you will end up with something like: This is invaluable when you want to link various posted form data to other hashes on the server side, when you need to store posted data in separate "compartment" arrays or when you want to link your POSTed data into different record handlers in various Frameworks.
Adding another form only requires an extra entry in the array and switch statements.
Something interesting which might help someone else: If your input field in HTML is "disabled", even if it contains text, $_POST will not return/contain any value.
It took me ages to work out and I couldn't find the help I needed in google. Make sure your input items have the NAME attribute. The name attribute on your input controls is what $_POST uses to index the data and therefore show the results.
There's an earlier note here about correctly referencing elements in $_POST which is accurate.
$_POST is an associative array indexed by form element NAMES, not IDs.
One way to think of it is like this: element "id=" is for CSS, while element "name=" is for PHP.
Remember also that using  as in index will cause a sequential numeric array to be created once the data is posted, so sometimes it's better to define your indexes explicitly.