Declare php Características

php declare

Se utiliza una sintaxis declare en php para asignar directivas de ejecución a un bloque de código y una sintaxis declare similar a una construcción de control de flujo de código.

Sintaxis declare php

declare (directive)
    statement

El enrutador le permite establecer el comportamiento de un bloque. En la actualidad, el idioma solo puede reconocer tres tipos de mensajes.

Tenemos el mensaje de ticks (veremos más información sobre el mensaje de ticks, más adelante), el mensaje de codificación (veremos más información sobre el mensaje de encoding, más adelante) y el otro mensaje del tipo strict_types.

Al procesar los vectores mientras se compila el archivo de código, los vectores toman sólo valores literales y no se pueden usar variables ni constantes, como se muestra en el siguiente ejemplo.

<?php
//Este código es válido
declare(ticks=1);

//Este código no es válido
const TICK_VALUE = 1;
declare(ticks=TICK_VALUE);
?>  

El lenguaje implementa la instrucción en un bloque declare php, pero esta implementación y sus consecuencias dependen del tipo de vector que se le asigna al bloque.

También se puede utilizar una estructura de declare dominio público y, en este caso declare, afectará a todo el código que le sigue si está en un archivo incluido, no afectará al archivo principal.

<?php
//Los siguientes dos códigos son iguales:
//este código se puede usar:
declare(ticks=1) {
}
//Use este código:
declare(ticks=1);
?>

Declare Ticks

El tick es un evento que ocurre por cada N número de declaraciones a las que se puede aplicar esta directiva, que es ejecutada por el intérprete dentro del bloque declare. 

El valor de N se puede establecer usando la instrucción ticks = N dentro de la sección directiva del bloque declare.El vector tick no se puede aplicar a todas las sentencias y, por lo general, este vector no se puede aplicar a sentencias condicionales y operandos.

Determina los eventos que ocurren en cada tick usando el register_tick_function()‎. El siguiente ejemplo proporciona más detalles. Tenga en cuenta que puede ocurrir más de un evento por tick. Veremos un ejemplo de uso correspondiente tick.

<?php
declare(ticks=1);
//invoca la función en el evento tick
function tick_handler()
{
    echo "tick_handler() called\n";
}
register_tick_function('tick_handler');
$a = 1;
if ($a > 0) {
    $a += 2;
    print($a);
}
?>  

Otro ejemplo del uso de ticks

<?php
function tick_handler(){
  echo "tick_handler() called\n";
}
$a = 1;
tick_handler();
if ($a > 0) {
    $a += 2;
    tick_handler();
    print($a);
    tick_handler();
}
tick_handler();
?>

Nota: Consulte el register_tick_function() unregister_tick_function()‎.

Declare Encoding

La codificación de cada código se puede especificar mediante el vector de codificación. Ejemplo de la declaración en la codificación del código.

<?php
declare(encoding='ISO-9000');
?>

Precaución: cuando se usa declare con espacio de nombres, la única sintaxis válida para declare es: declare(encoding='...')‎;‎ donde reemplaza … con el valor de marcado requerido. El uso de la declare(encoding='...') {} sintaxis arroja un error de sintaxis cuando se usa declare con el espacio de nombres.

Registro de cambios declare php

VersiónFunción
5.3.0Agregar vector de codificador
7.0.0Agregar el indicador de tipos estrictos

Compatibilidad PHP 4, PHP 5, PHP 7, PHP 8 +.