mirror of
https://github.com/php/doc-es.git
synced 2026-03-23 23:12:09 +01:00
188 lines
5.3 KiB
XML
188 lines
5.3 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: 5499acf9df7e1338d540bde207acc859792cd139 Maintainer: PhilDaiguille Status: ready -->
|
|
<!-- Reviewed: no -->
|
|
|
|
<sect1 xml:id="control-structures.declare" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<title>declare</title>
|
|
<?phpdoc print-version-for="declare"?>
|
|
<para>
|
|
El elemento de lenguaje <literal>declare</literal> se utiliza para añadir directivas de ejecución en un bloque de código. La sintaxis de
|
|
<literal>declare</literal> es similar a la sintaxis de otras funciones de control:
|
|
<informalexample>
|
|
<programlisting>
|
|
<![CDATA[
|
|
declare (directive)
|
|
comandos
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
</para>
|
|
<para>
|
|
La expresión <literal>directive</literal> permite controlar la intervención del bloque <literal>declare</literal>.
|
|
Actualmente, solo tres directivas son reconocidas:
|
|
<simplelist>
|
|
<member><link linkend="control-structures.declare.ticks"><literal>ticks</literal></link></member>
|
|
<member><link linkend="control-structures.declare.encoding"><literal>encoding</literal></link></member>
|
|
<member><link linkend="language.types.declarations.strict"><literal>strict_types</literal></link></member>
|
|
</simplelist>
|
|
</para>
|
|
|
|
<para>
|
|
Como las directivas son gestionadas durante la compilación del fichero, solo
|
|
los literales pueden ser utilizados como valor de estas directivas. Las variables
|
|
y constantes no pueden ser utilizadas. Para ilustrar:
|
|
<informalexample>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
// Esto es correcto:
|
|
declare(ticks=1);
|
|
|
|
// Esto es incorrecto:
|
|
const TICK_VALUE = 1;
|
|
declare(ticks=TICK_VALUE);
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
</para>
|
|
<para>
|
|
La expresión <literal>comandos</literal> del bloque de
|
|
<literal>declare</literal> será ejecutada. Cómo será ejecutada,
|
|
y qué efectos tendrá, depende de la directiva utilizada en el bloque
|
|
<literal>directive</literal>.
|
|
</para>
|
|
<para>
|
|
La estructura <literal>declare</literal> puede también ser utilizada
|
|
en el contexto global. Afecta entonces a todo el código que la
|
|
sigue (incluso si el fichero con <literal>declare</literal> ha sido
|
|
incluido después, no afecta al fichero padre).
|
|
<informalexample>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
// Estas declaraciones son idénticas.
|
|
|
|
// Se puede utilizar esto
|
|
declare(ticks=1) {
|
|
// script entero aquí
|
|
}
|
|
|
|
// o esto
|
|
declare(ticks=1);
|
|
// script entero aquí
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
</para>
|
|
|
|
<sect2 xml:id="control-structures.declare.ticks">
|
|
<title>Ticks</title>
|
|
<para>
|
|
Un tick es un evento que interviene cada <varname>N</varname>
|
|
comandos de bajo nivel tickables, ejecutados por el analizador en el bloque de
|
|
<literal>declare</literal>. El valor de <varname>N</varname> es especificado
|
|
por la sintaxis <code>ticks=<varname>N</varname></code> en el bloque de
|
|
directiva <literal>declare</literal>.
|
|
</para>
|
|
<para>
|
|
No todos los comandos son tickables. Típicamente,
|
|
las expresiones de condición y las expresiones de argumentos
|
|
no son tickables.
|
|
</para>
|
|
<para>
|
|
Un evento que interviene en cada tick es especificado con la función
|
|
<function>register_tick_function</function>. Consulte el ejemplo
|
|
a continuación para más detalles. Tenga en cuenta que más de un evento puede
|
|
intervenir por tick.
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>Ejemplo de uso de ticks</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
|
|
declare(ticks=1);
|
|
|
|
// Una función llamada en cada evento tick
|
|
function tick_handler()
|
|
{
|
|
echo "tick_handler() llamado\n";
|
|
}
|
|
|
|
register_tick_function('tick_handler'); // causa un evento tick
|
|
|
|
$a = 1; // causa un evento tick
|
|
|
|
if ($a > 0) {
|
|
$a += 2; // causa un evento tick
|
|
print $a; // causa un evento tick
|
|
}
|
|
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<simpara>
|
|
Ver también <function>register_tick_function</function> y
|
|
<function>unregister_tick_function</function>.
|
|
</simpara>
|
|
</sect2>
|
|
<sect2 xml:id="control-structures.declare.encoding">
|
|
<title>La codificación</title>
|
|
<para>
|
|
La codificación de un script puede ser especificada por script utilizando la
|
|
directiva <literal>encoding</literal>.
|
|
<example>
|
|
<title>Declaración de una codificación para un script</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
declare(encoding='ISO-8859-1');
|
|
// el código
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
|
|
<caution>
|
|
<simpara>
|
|
Combinada con los espacios de nombres, la única sintaxis válida para declare
|
|
es <literal>declare(encoding='...');</literal> donde <literal>...</literal>
|
|
es el valor de la codificación. <literal>declare(encoding='...') {}</literal>
|
|
generará un error de interpretación en el caso de los espacios de nombres.
|
|
</simpara>
|
|
</caution>
|
|
<para>
|
|
Ver también
|
|
<link linkend="ini.zend.script-encoding">zend.script_encoding</link>.
|
|
</para>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|