2010-10-25 7 views
9

Después de haber actualizado a PHP 5.3, mi solicitud fue inundado conPHP 5.3: "Declaración de ... debe ser compatible con el de ..." error

"Declaración de ... debe ser compatible con el de ... "

errores de estilo. Entiendo la naturaleza de estos errores, pero deseo desactivarlos.

error_reporting setting in php.ini es "E_ALL & ~(E_NOTICE | E_DEPRECATED)", pero este error continúa apareciendo. Supuse que estaba incluido en E_STRICT, pero ¿estoy equivocado?

+0

¿No dice qué tipo de error es? –

+8

Estos son de hecho errores 'E_STRICT', pero pero la OMI debe corregir sus causas en lugar de sus informes. Mantenga su código limpio. – Gordon

+5

No es una cuestión de código limpio. El error es el resultado del método de una clase secundaria que tiene argumentos adicionales que el mismo método en la clase principal. En particular, es una función _defaultAction() para una clase de controlador. Las acciones predeterminadas extendidas pueden aceptar argumentos que la clase principal no acepta. Podría usar fácilmente func_get_args() para eludir el problema, pero luego la declaración del método carece por completo de significado relevante. – Ethan

Respuesta

12

Es un error E_STRICT. Cambie su configuración de php.ini a E_ALL & ~(E_NOTICE | E_DEPRECATED | E_STRICT) ...

Pero debe estar apagado por defecto (no está incluido en E_ALL). Entonces, si los estás obteniendo, eso significa que se está activando en alguna parte. La pregunta es, ¿dónde? ¿Declara error_reporting(...) en algún lugar de sus archivos? Si es así, revísalos. Si no es así, asegúrese de que está editando el archivo php.ini derecha (comprobar phpinfo()) ... Siempre se puede hacer un grep para E_STRICT para tratar de encontrar dónde se está convirtiendo en ...

+1

también podría habilitarse usando 'error_reporting (-1)' que es la forma recomendada de habilitar todos los errores en las máquinas de desarrollo. – Gordon

+0

Cambié la configuración en php.ini, pero el error aún aparece. No está configurado en ningún otro lado (comprobado mediante grep) y la alteración del valor de error_reporting en el tiempo de ejecución no tiene ningún efecto. Además, la línea a la que se hace referencia en el error siempre es la línea donde se declara la clase secundaria, si esto arroja alguna luz sobre el problema. – Ethan

+4

Para completar, 'E_STRICT' * está * incluido en' E_ALL' a partir de 5.4. – ladenedge

0

Vamos dime usted una buena configuración.

Puede cambiar php.ini, en este archivo, puede buscar una oración como ignore_repeated_errors = Off, debe cambiar el estado de apagado.

Si también encuentra el mismo tipo de error, debe establecer Constantes de nivel de error.

Cuestiones relacionadas