There is no silver bullet, it all depends on the usecase.
In some cases you might just use $_POST['foo']
directly, but most of the time, you need to check that the data has been set before trying to use it, also be sure not to directly output it without proper santization. This why the answers that say; just use it directly might imply somehow that the variable is always set and is used in nondangerous context, which in most cases in not the case...
Most of the times you want to do stuff with the data you are retrieving. In such case it is important that you do not directly modify $_POST['foo']
as you should not modify global data but instead incapsulate it.
Sometimes it might be nice to do, what you asked; to avoid: as you would have a place where you transfer all the values you get from the request to specific variable names. This makes it all easier to refactor, if you decide to change the clientside markup. Often you might need to check if the value was even passed before trying to directly use it or assign it.
This might also be a good time to look forward to php7 and https://wiki.php.net/rfc/isset_ternary
Just remember, the more data you send, the code you have to write to properly manage it. And what you are asking not to do, might just be exactly what you want to do... or maybe something like
$foo = isset($_POST['foo']) ? $_POST['foo'] : null;
And I am sure you can easily imaging putting something similar into a function.. What you are looking for in this context, is not less lines of code, but more.