No there is no different as both will execute the code when the result is 'true'
Right, keep in mind, however, the variable may contain any variable type. In my experience, when using a variable value as an expression, I have noticed that the following are true:
An integer larger than zero (not sure about neg ints. You can test.)
A string that is neither null nor empty in length.
Not sure about arrays (again, you test that. I usually test if an array isset and has count.)
Basically, isset is meant to determine whether you have assigned a variable a value. For example:
$var = "";
echo isset($var);
will return true where:
$var = "";
if ($var) echo "true";
Will not return true. (please note in PHP expressions 1 and true are equivalent.)
So, the point is, it depends on the variable type. FYI, the empty() function is an excellent way to test for empty strings. All in all, I think it's better practise to use isset and empty as your code is clearer.