Global variables during plugin activation , deactivation and uninstall operarations

You should prefer the uninstall hook over the file if your main plugin doesn’t have side effects (outputs html or writes to file/DB automatically when loaded). IMO there is too much risk (i.e. non zero) of doing the uninstall.php code wrong and open the file to direct execution from the outside.
This also help in having all the relevant code in one place.

uninstall.php, when exists, is being executed without loading the plugin code (that is the whole point of it) and therefor whatever is declared in the plugin code will not be available to uninstall.php.