mirror of
https://github.com/macintoshplus/doc-fr.git
synced 2026-03-25 17:32:07 +01:00
194 lines
5.5 KiB
XML
194 lines
5.5 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: 17297101a4e423420de52d6ef389403bfbd3cf7f Maintainer: yannick 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>
|
|
L'élément de langage <literal>declare</literal> sert à ajouter des
|
|
directives d'exécutions dans un bloc de code. La syntaxe de
|
|
<literal>declare</literal> est similaire à la syntaxe des autres
|
|
fonctions de contrôle :
|
|
<informalexample>
|
|
<programlisting>
|
|
<![CDATA[
|
|
declare (directive)
|
|
commandes
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
</para>
|
|
<para>
|
|
L'expression <literal>directive</literal> permet de contrôler l'intervention
|
|
du bloc <literal>declare</literal>. Actuellement, seulement trois directives
|
|
sont reconnues : la directive <literal>ticks</literal> (voir plus bas pour
|
|
plus de détails sur les
|
|
<link linkend="control-structures.declare.ticks">ticks</link>), la directive
|
|
d'encodage <literal>encoding</literal> (Voir plus bas pour plus de détails sur
|
|
la directive
|
|
<link linkend="control-structures.declare.encoding">encoding</link>) et la
|
|
directive <literal>strict_types</literal> (Voir la section
|
|
<link linkend="language.types.declarations.strict">Typage strict</link>
|
|
sur la page de déclaration de type).
|
|
</para>
|
|
|
|
<para>
|
|
Comme les directives sont gérées lors de la compilation du fichier, seulement
|
|
les littéraux peuvent être utilisés comme valeur de ces directives. Les variables
|
|
et constantes ne peuvent pas être utilisées. Pour illustrer :
|
|
<informalexample>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
// Ceci est correct:
|
|
declare(ticks=1);
|
|
|
|
// Ceci est incorrect:
|
|
const TICK_VALUE = 1;
|
|
declare(ticks=TICK_VALUE);
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
</para>
|
|
<para>
|
|
L'expression <literal>commandes</literal> du bloc de
|
|
<literal>declare</literal> sera exécutée. Comment elle sera exécutée,
|
|
et quels effets cela aura, dépend de la directive utilisée dans le bloc
|
|
<literal>directive</literal>.
|
|
</para>
|
|
<para>
|
|
La structure <literal>declare</literal> peut aussi être utilisée
|
|
dans le contexte global. Elle affecte alors tout le code qui la
|
|
suit (même si le fichier avec <literal>declare</literal> a été
|
|
inclus après, ça n'affecte pas le fichier parent).
|
|
<informalexample>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
// Ces déclarations sont identiques.
|
|
|
|
// Vous pouvez utiliser ceci
|
|
declare(ticks=1) {
|
|
// script entier ici
|
|
}
|
|
|
|
// ou ceci
|
|
declare(ticks=1);
|
|
// script entier ici
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
</para>
|
|
|
|
<sect2 xml:id="control-structures.declare.ticks">
|
|
<title>Ticks</title>
|
|
<para>
|
|
Un tick est un événement qui intervient toutes les <varname>N</varname>
|
|
commandes bas niveau tickables, exécutées par l'analyseur dans le bloc de
|
|
<literal>declare</literal>. La valeur de <varname>N</varname> est spécifiée
|
|
par la syntaxe <code>ticks=<varname>N</varname></code> dans le bloc de
|
|
directive <literal>declare</literal>.
|
|
</para>
|
|
<para>
|
|
Toutes les commandes ne sont pas tickables. Typiquement,
|
|
les expressions de condition et les expressions d'arguments
|
|
ne sont pas tickables.
|
|
</para>
|
|
<para>
|
|
Un événement qui intervient à chaque tick est spécifié avec la fonction
|
|
<function>register_tick_function</function>. Reportez-vous à l'exemple
|
|
ci-dessous pour plus de détails. Notez que plus d'un événement peut
|
|
intervenir par tick.
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>Exemple d'utilisation des ticks</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
|
|
declare(ticks=1);
|
|
|
|
// A function called on each tick event
|
|
function tick_handler()
|
|
{
|
|
echo "tick_handler() called\n";
|
|
}
|
|
|
|
register_tick_function('tick_handler'); // causes a tick event
|
|
|
|
$a = 1; // causes a tick event
|
|
|
|
if ($a > 0) {
|
|
$a += 2; // causes a tick event
|
|
print($a); // causes a tick event
|
|
}
|
|
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<simpara>
|
|
Voir aussi <function>register_tick_function</function> et
|
|
<function>unregister_tick_function</function>.
|
|
</simpara>
|
|
</sect2>
|
|
<sect2 xml:id="control-structures.declare.encoding">
|
|
<title>L'encodage</title>
|
|
<para>
|
|
L'encodage d'un script peut être spécifié par script en utilisant la
|
|
directive <literal>encoding</literal>.
|
|
<example>
|
|
<title>Déclaration d'un encodage pour un script</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
declare(encoding='ISO-8859-1');
|
|
// le code
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
|
|
<caution>
|
|
<simpara>
|
|
Combinée avec les espaces de nommage, la seule syntaxe valable pour declare
|
|
est <literal>declare(encoding='...');</literal> où <literal>...</literal>
|
|
est la valeur de l'encodage. <literal>declare(encoding='...') {}</literal>
|
|
soulèvera une erreur d'interprétation dans le cas des espaces de nommage.
|
|
</simpara>
|
|
</caution>
|
|
<para>
|
|
Voir aussi
|
|
<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
|
|
-->
|