Tratamiento de los errores en PHP
Los errores producidos en el momento de ejecutar un script PHP suelen ser advertidos en la ventana del navegador. Si la directiva error_log de php.ini tiene asignada una ruta y un nombre de fichero tales mensajes de error se almacenarían también en ese fichero.

Hay dos directivas que conviene diferenciar: error_reporting y display_errors. Con la primera se estable den que condiciones se producen los mensajes de error y en la segunda si van a visualizarse o no.

Cuando display_errors está desactivada aunque se produzcan mensajes de error no se visualizarán pero si se guardarían en el fichero destinado a almacenar esos errores.

Obviamente si error_reporting está configurado de modo que no genere errores resulta intranscendente como esté configurado display_errors.
Visualización de los mensajes de error
En el fichero php.ini se incluye una directiva denominada display_errors
que permite establecer si los mensajes de error van a visualizarse en la ventana de nuestro navegador.
Son posibles dos valores: On / Off siendo el primero el valor por defecto en la configuración de php.ini.

Los valores preestablecidos en el fichero php.ini pueden modificarse temporalmente -en tiempo de ejecución- para un script determinado. Bastaría incluir en la primera línea del script la función
ini_set('display_errors','On') o ini_set('display_errors','Off')
para que se aplicara temporalmente la configuración aquí indicada independientemente del valor que tuviera establecido en php.ini.
Las configuraciones por defecto de PHP son distintas en las versiones para Windows y Ubuntu. En el primero de los casos la configuración de la directiva en php.ini es display_errors=ON mientras que en el segundo de los casos display_errors=Off. Es algo a tener en cuenta porque las visualizaciones de los errores advertidos en estos materiales pueden no producirse en instalaciones sobre Ubuntu si no se ha modificado esta directiva en php.ini.
Avisos de error en PHP
También se incluye en php.ini otra directiva denominada error_reporting
que permite establece que tipo mensajes de error va a generar PHP.
Los diferentes valores que pueden asignarse a estas directiva son los siguientes:
Niveles de error Significado
E_ALL Todos errores y/o avisos
E_ERROR Error grave que impiden la ejecución de los scripts en tiempo de ejecución
E_RECOVERABLE_ERROR Errores graves (recuperables) que no impiden la ejecución de los scripts en tiempo de ejecución
E_WARNING Advertencia en tiempo de ejecución. No impide la ejecución del script
E_PARSE Errores de compilación detectados en tiempo de análisis de los scripts
E_NOTICE Avisos en tiempo de ejecución (estas son las advertencias de un aparente error en el código que puede ser intencional (por ejemplo, utilizar una variable sin inicializar asumiendo el hecho de que automáticamente se inicializará como una cadena vacía)
E_STRICT Avisos en tiempo de ejecución que sugieren cambios en el código para garantizar una mejor interoperabilidad y compatibilidad con versiones posteriores.
E_CORE_ERROR Error grave en el momento de iniciarse el PHP
E_CORE_WARNING Advertencia no grave en el momento de iniciarse el PHP
E_COMPILE_ERROR Error grave en tiempo de compilación
E_COMPILE_WARNING Advertencia de error en tiempo de compilación
E_USER_ERROR Error generado por el usuario
E_USER_WARNING Advertencia generada por el usuario
E_USER_NOTICE Aviso generado por el usuario
E_DEPRECATED Advertencia sobre el código que no funcionará en futuras versiones de PHP
Modo de configurar la directiva error_reporting
La directiva error_reporting lleva detrás del signo igual uno o varios de los niveles de error de la tabla anterior.
Cuando se trata de varios valores pueden pueden ir enlazados por los operadores booleanos & (and)ó | (or).
Así mismo, cualquiera de identificadores de nivel puede ir precedido del símbolo ~ (not) de negación
Configuraciones por defecto en diferentes versiones de PHP para Windows
Versión Valores por defecto en los archivos php.ini
PHP 5.2 y anteriores error_reporting = E_ALL & ~E_NOTICE    
- Muestra todos los errores excepto los del tipo E_NOTICE
PHP 5.3 Development error_reporting = E_ALL | E_STRICT   
- Muestra todos los errores, avisos y advertencias.
PHP 5.3 Production error_reporting = E_ALL & ~E_DEPRECATED   
- Muestra todos los errores excepto los relativos a funciones que pueden resultar obsoletas en próximas versiones
Configuraciones por defecto en Ubuntu
PHP 5.3 Production error_reporting = E_ALL & ~E_NOTICE   
- Muestra todos los errores excepto los del tipo E_NOTICE
Podemos modificar a nuestro gusto esta directiva sin más que editar el fichero php.ini,
buscar la línea que comienza por error_reporting = y asignarle la configuración que consideremos oportuna.

Igual que ocurría con display_errors también puede modificarse para un script determinado el valor del error_reporting establecido en el fichero php.ini. Sería cuestión de incluir, por ejemplo, la instrucción ini_set('error_reporting','~E_ALL')
Al hacer la configuración de PHP 5 hemos elegido como fichero base el denominado php.ini-developement
cuya directiva está configurada de forma tan estricta que nos advierte de errores que pueden no serlo.
Ocurriría, por ejemplo, que en el caso de utilizar una variable que no ha sido inicializada
nos daría el mensaje de error aunque ello no impide ni la correcta ejecución del script
ni tampoco la asignación de la cadena nula como valor de esa variable