Well, being alone, assignment in the logical operator is not that bad:
if ($id = $_GET['id']) {
or
while($row = mysql_fetch_assoc($res)) {
we use pretty often.
Though it's still in danger of readability fault or mixing =
and ==
operators.
But mixing logical and assignment operators in one statement is bad. This is called obfuscation and perl write-only style, makes reading this code harder.
So, it's better to be written as
if(isset($_POST)) {
$post = $_POST;
print_r($post);
}
though this particular statement is pretty senseless.
$_POST is always set in any sensible environment and assigning it to another variable not necessary most of time