Hola,
Del "warning" no sé... pero, respecto de los errores que se muestran en el navegador, si no me equivoco, es una buena práctica ocultarlos, puesto que estos contienen información que usuarios "malintencionados" podrían. De hecho podrían "provocar errores" sólo por ver los mensajes de error y ver qué se encuentran. De modo que, personalmente, siempre utilizo cierta función del capo (Emilio) en mis proyectos:
Código PHP:
function SetErrorLevel(){
if($_SERVER['SERVER_ADDR'] != '127.0.0.1'){
error_reporting(0);
ini_set('display_errors', 0);
ini_set('error_reporting', 0);
}else{
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('error_reporting', E_ALL);
}
return true;
}
Esa función asegura que, mientras trabajamos "en local" con un proyecto, PHP muestre todos las "notices", "warning" y errores que encuentre. Pero, cuando el proyecto esté "en el servidor", la misma función impedirá que PHP muestre ningún error de PHP en absoluto. Claro está que otra cosa son los mensajes que nosotros mostremos al usuario.