El comportamiento de estas funciones se ve afectado por la configuración de php.ini.
Nombre | Por defecto | Cambiable | Historial de cambios |
---|---|---|---|
assert.active | "1" | INI_ALL |
Obsoleto a partir de PHP 8.3.0 |
assert.bail | "0" | INI_ALL |
Obsoleto a partir de PHP 8.3.0 |
assert.warning | "1" | INI_ALL |
Obsoleto a partir de PHP 8.3.0 |
assert.callback | NULL | INI_ALL |
Obsoleto a partir de PHP 8.3.0 |
assert.quiet_eval | "0" | INI_ALL |
Eliminado a partir de PHP 8.0.0 |
assert.exception | "1" | INI_ALL |
Anterior a PHP 8.0.0, el valor por defecto es "0"
Obsoleto a partir de PHP 8.3.0
|
enable_dl | "1" | INI_SYSTEM |
Esta característica obsoleta será eliminada con certeza en el futuro. |
max_execution_time | "30" | INI_ALL |
|
max_input_time | "-1" | INI_PERDIR |
|
max_input_nesting_level | "64" | INI_PERDIR |
|
max_input_vars | 1000 | INI_PERDIR |
|
zend.enable_gc | "1" | INI_ALL |
|
zend.max_allowed_stack_size | "0" | INI_SYSTEM |
Disponible a partir de PHP 8.3.0. |
zend.reserved_stack_size | "0" | INI_SYSTEM |
Disponible a partir de PHP 8.3.0. |
fiber.stack_size | INI_ALL |
Disponible a partir de PHP 8.1.0. |
He aquí una breve explicación de las directivas de configuración.
assert.active
bool
Activa las evaluaciones de tipo assert(). zend.assertions debería ser utilizado en su lugar para controlar el comportamiento de assert().
Esta función ha sido declarada OBSOLETA a partir de PHP 8.3.0. Su uso está totalmente desaconsejado.
assert.bail
bool
Termina el script si una aserción falla.
Esta función ha sido declarada OBSOLETA a partir de PHP 8.3.0. Su uso está totalmente desaconsejado.
assert.warning
bool
Emite una alerta PHP para cada aserción que falle.
Esta función ha sido declarada OBSOLETA a partir de PHP 8.3.0. Su uso está totalmente desaconsejado.
assert.callback
string
Función definida por el programador, a llamar para cada aserción fallida.
Esta función ha sido declarada OBSOLETA a partir de PHP 8.3.0. Su uso está totalmente desaconsejado.
assert.quiet_eval
bool
Esta característica ha sido ELIMINADA a partir de PHP 8.0.0.
Utiliza la configuración actual de error_reporting() durante las evaluaciones de aserciones. Si está activada, ningún error es mostrado (error_reporting(0) implícito) durante la evaluación. Si está desactivada, los errores son mostrados según la configuración de error_reporting()
assert.exception
bool
Lanza una excepción AssertionError cuando una aserción falla.
enable_dl
bool
Esta directiva permite activar o desactivar la carga dinámica de extensiones PHP con la función PHP dl().
La razón principal para desactivar este sistema es la seguridad. Con la carga dinámica, es posible eludir las restricciones impuestas por open_basedir.
max_execution_time
int
Establece el tiempo máximo de ejecución de un script,
en segundos. Esto evita que los scripts en
bucles infinitos saturen el servidor. La configuración por
defecto es de 30
segundos. Cuando PHP
funciona desde la línea
de comando, el valor por defecto es 0
.
En sistemas no-Windows, el tiempo máximo de ejecución no se ve afectado por llamadas al sistema como sleep(). Consulte la función set_time_limit() para más detalles.
El servidor web puede tener otras configuraciones de tiempo límite
de ejecución que también pueden interrumpir PHP. Apache tiene una directiva
Timeout
e IIS tiene una función CGI para ello.
Por defecto, ambas valen 300 segundos. Consulte
la documentación del servidor web para más detalles.
max_input_time
int
Esta opción especifica la duración máxima para analizar
los datos de entrada, como POST y GET.
Esta duración se mide desde el momento en que PHP es invocado en el
servidor hasta el inicio de la ejecución del script.
El valor por defecto es -1
, lo que significa que
max_execution_time
es utilizado en su lugar. Establecer el valor a 0
para permitir una ejecución ilimitada.
max_input_nesting_level
int
Define la profundidad máxima de las variables de entrada (es decir, $_GET, $_POST..)
max_input_vars
int
El número de variables de entrada
que pueden ser aceptadas (este límite se aplica a las variables
superglobales $_GET, $_POST y $_COOKIE, por separado). El uso de esta directiva
permite limitar las posibilidades de ataque por denegación de servicio
utilizando colisiones de hash. Si hay más variables de entrada que el número especificado por esta directiva, una
alerta de tipo E_WARNING
será emitida, y las
variables adicionales serán eliminadas de la solicitud.
zend.enable_gc
bool
Activa o desactiva la recolección de referencias circulares.
zend.max_allowed_stack_size
int
La cantidad máxima de memoria de pila nativa (stack) permitida por el sistema operativo para el programa. Intentar consumir más de lo que el sistema permite generalmente resulta en un fallo brusco, sin información de depuración fácilmente disponible. Para facilitar la depuración, el motor lanza una Error antes de que esto ocurra (cuando el programa utiliza más de zend.max_allowed_stack_size-zend.reserved_stack_size bytes de pila).
La recursión en el código definido por el usuario no consume pila nativa. Sin embargo, las funciones internas y los métodos mágicos, sí consumen pila nativa. Una recursión muy profunda que involucre estas funciones puede hacer que el programa agote toda la memoria de pila disponible.
Los valores posibles para este parámetro son:
0
:
Detectar automáticamente la memoria de pila nativa máxima que el sistema
operativo permite para el programa.
Este es el valor por defecto.
Cuando la detección es imposible, se utiliza un valor por defecto del sistema.
-1
: Desactiva la verificación del tamaño de la pila en el motor.
Como el tamaño de pila de las fibers está determinado por fiber.stack_size, el valor de este parámetro es utilizado en lugar de zend.max_allowed_stack_size durante la verificación del uso de la pila durante la ejecución de una Fiber.
Nota:
Esto no tiene ninguna relación con los desbordamientos de búfer de pila (stack buffer overflows), y no es una funcionalidad de seguridad.
zend.reserved_stack_size
int
El tamaño reservado de la pila, en bytes. Este se resta de la tamaño máximo de pila permitido, como un margen de seguridad, durante la verificación del tamaño de la pila.
Los valores posibles para este parámetro son:
0
: Detectar automáticamente un tamaño razonable.
fiber.stack_size
int
El tamaño de la pila nativa, en bytes, asignada a cada Fiber.
El valor por defecto es de 1 Mio en sistemas donde el tamaño de los punteros es inferior a 8 bytes, o de 2 Mio en caso contrario.