Another vote for isset(). @ doesn't work when you use a custom error handler:
error_reporting(E_ALL);
$x = @$undefined; // No message thanks to @
function error_handler($errno, $errstr, $errfile, $errline) {
echo "$errstr at $errfile:$errline\n";
}
set_error_handler('error_handler');
$x = @$undefined; // error_handler() is called, even with @