2010-05-17 18 views
16

Necesito desactivar E_STRICT. Tengo error_reporting = E_ALL & ~ E_STRICT en mi php.ini pero parece ser ignorado. Intenté esto en mi código:Cómo deshabilitar E_STRICT

ini_set('error_reporting', E_NOTICE); 

¡Nada!

Por favor ayuda.

+0

¿Estás seguro de que tu archivo php.ini no se está reemplazando en otro lugar? ¿Hay una versión más local del archivo php.ini? –

+0

En lugar de desactivar los errores, en realidad debería arreglar su código para que no arroje nada. – poke

+0

poke: Lo sé gracias, pero también tengo un framework, la aplicación está en producción y está bien y lo hago no tengo tiempo! – rtacconi

Respuesta

8

prueba esto.

error_reporting(E_ALL^E_STRICT); 

Esto reportará todos los errores, excepto E_STRICT

-2
error_reporting(E_ALL & ~E_STRICT); 
+0

'|' habilitará 'E_STRICT'. La pregunta quiere ** deshabilitar ** it ....... – Pacerier

2

Usted ha mencionado que está utilizando un marco (sería bueno saber cuál) de todos modos se puede añadir algo como esto en el primer índice .php:

error_reporting(E_ERROR | E_WARNING | E_PARSE); 
ini_set('display_errors', 'On'); 

Pero asegúrese de que está en el primer index.php que es llamada, es decir, la primera en la pila, por cierto marco que le ahorraría un poco de dolor.

Otra cosa: la mayoría de las estructuras tienen su propio archivo de configuración para direccionar el software de producción VS. software de desarrollo y tienen su propia forma de hacer las cosas, así que empezaría desde allí ... eche un vistazo a los documentos y descubra si hay algo allí que necesite cambiar ... podría ser un cambio súper simple en un archivo de configuración más probable.

5

Si usted tiene su propio gestor de errores (buscar su código para set_error_handler), entonces el valor de configuración error_reporting serán ignorados:

Es importante recordar que el controlador de errores estándar de PHP está completamente anulada para los tipos de error especificados por error_types a menos que la función de devolución de llamada devuelva FALSE. configuración de error_reporting() no tendrá ningún efecto y se llamará a su controlador de errores de todos modos; sin embargo, todavía puede leer el valor actual de error_reporting y actuar de forma adecuada. De particular interés es que este valor será 0 si la instrucción que causó el error fue antepuesta por el operador @ error-control.

http://php.net/manual/en/function.set-error-handler.php

también la eliminación de la E_STRICTerror_reporting config podría fallar, si el error se produce en el mismo archivo donde se llama error_reporting(...) (o ini_set('error_reporting, ...')).

+0

+1 porque esta fue la respuesta que más me ayudó aquí. Creé una clase de enlace llamada ExceptionHook en CodeIgniter que llama a un controlador de errores como este: 'set_error_handler (array ('ExceptionHook', 'exception_error_handler'), E_ALL);' Si paso E_STRICT al segundo argumento, una biblioteca heredada clave falla, así que tuve que desactivar los errores E_STRICT. – DavidHyogo

+0

de acuerdo, más útil. Internet está lleno de cosas de ^/~ E_STRICT pero mi problema estaba en error_handler ... ¡genial! –

1

estaba instalando CMS Made Simple cuando me encontré con ese error, pero aquí es cómo vine sobre ella:

1) abrir su archivo php.ini utilizando cualquiera de sus editores favoritos; bloc de notas, Notepad ++ o Dreamweaver.

2) Presione ctrl + f para abrir el cuadro de diálogo Buscar.

3) Escriba E_STRICT y haga clic en Aceptar para ir a la línea E_STRICT, hay varias cosas E_STRICT pero busque una con este tipo de configuración;

Valores comunes:

E_ALL & ~E_NOTICE (Show all errors, except for notices and coding standards warnings.) 
    E_ALL & ~E_NOTICE | E_STRICT (Show all errors, except for notices) 
    E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) 
    E_ALL | E_STRICT (Show all errors, warnings and notices including coding standards.) 
Default Value: E_ALL & ~E_NOTICE 
Development Value: E_ALL | E_STRICT 
Production Value: E_ALL & ~E_DEPRECATED 
http://php.net/error-reporting 

error_reporting = E_ALL, aquí el valor con el ";" Lo que importa es lo que acaba de borrar a:

error_reporting = (eliminar) y se separó el E_ALL, y se guarda el archivo, me reinicia todos los servicios, y todo funcionaba bien. ¡Espero que también te sirva!