It's actually better to code with error_reporting(E_ALL), if you can. If you've already got a whole bunch of code that works fine but throws notices, then don't worry about it, but if you're writing new code it can be helpful.
The notices are to warn you about things like this:
$myvariable = $myvaraible + 1;
The above will always set $myvariable to 1, no matter what it was before. With error_reporting(E_ALL) you'll get a notice about $myvaraible being undefined (it's a typo).
When you really do expect the variable may be undefined you can write the code in such a way that it won't throw a notice:
if (!isset($prov)) { ... } // doesn't throw notice
if (empty($prov)) { ... } // doesn't throw notice
if (!@$prov) { ... } // notice is supressed by @