I once experienced this when I was working with a fresh PHP for Win32 install where, in the setup dialog, I had set the warning/error level to "show all warnings and errors" (sounding like that).
it is common practice not to initialize variables before use; php will accept them as being "empty".
with all warnings on, however php spits out a warning.
after I had reinstalled php with "show errors only", php behaved as on most systems.
in your case, I think you could have a form displayed through a php script and e.g. check for if(isset($submitbutton)) at the top, which produces a warning. After form submit the script is reloaded and the variable is set, I assume that is why there's no warning.
if someone has more detailed info on this, please let me know as I learned these things only by experience.