Blog de Gonzalo

DECLARE EN PHP

Hay una estructura de control en php que es poco conocida que es la estructura de control declare que se usa para fijar directivas de ejecución para un bloque de código. declare (directive), solo hay dos directivas ticks y enconding y estas directivas permiten configurar el comportamiento de declare. Las directivas no pueden ser ni constantes ni variables.

TICKS

Un script de php puede representarse como una ejecución de varias sentencias. La mayoría de las sentencias provocan un tick (aunque no todas). Por ejemplo en el siguiente ejemplo habría 5 ticks:

$a = 1;
$b = 2;
$c = 3;
$d = 4;
$e = 5;

Bien ahora supongamos que queremos ejecutar una función cada N ticksm en el ejemplo 3 (declare(ticks = 3)). Pues se haría de la siguiente manera:

function handler(){
    echo "nuevo tick ";
}

register_tick_function("handler");
$i = 0;
declare(ticks = 3) {
    while($i < 12)
        echo ++$i.' ';
} // Devuelve 123 nuevo tick 4 5 6 nuevo tick 7 8 9 nuevo tick 10 11 12 nuevo tick 

ENCODING

La codificación puede ser especificada para cada script con el encoding especificado. Por ejemplo declare(encoding='ISO-8859-1');, en este caso todos los php que tengan el encoding ISO-8859-1 ejecutarán el código especificado.