-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Sync untranslated language/control-structures (#16)
- Loading branch information
1 parent
2d7d5e8
commit d608c1b
Showing
4 changed files
with
944 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,189 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<!-- EN-Revision: 5499acf9df7e1338d540bde207acc859792cd139 Maintainer: grzesiek Status: ready --> | ||
<!-- $Revision$ --> | ||
|
||
<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> | ||
Konstrukcja <literal>declare</literal> służy do | ||
ustawiania dyrektyw wykonania dla bloku kodu. | ||
Składnia <literal>declare</literal> jest podobna do | ||
składni innych konstrukcji kontroli przepływu: | ||
<informalexample> | ||
<programlisting> | ||
<![CDATA[ | ||
declare (directive) | ||
statement | ||
]]> | ||
</programlisting> | ||
</informalexample> | ||
</para> | ||
|
||
<para> | ||
Sekcja <literal>directive</literal> pozwala na ustawienie | ||
zachowania bloku <literal>declare</literal>. | ||
Obecnie rozpoznawane są tylko trzy dyrektywy: | ||
<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> | ||
Ponieważ dyrektywy są obsługiwane podczas kompilacji pliku, tylko literały | ||
mogą być podawane jako wartości dyrektyw. Zmienne i stałe nie mogą być używane. | ||
Aby zilustrować: | ||
<informalexample> | ||
<programlisting role="php"> | ||
<![CDATA[ | ||
<?php | ||
// To nie jest niepoprawne: | ||
declare(ticks=1); | ||
// To jest poprawne: | ||
const TICK_VALUE = 1; | ||
declare(ticks=TICK_VALUE); | ||
?> | ||
]]> | ||
</programlisting> | ||
</informalexample> | ||
</para> | ||
<para> | ||
Część <literal>statement</literal> bloku | ||
<literal>declare</literal> zostanie wykonana - sposób | ||
jej wykonania i efekty uboczne mogą zależeć od dyrektywy | ||
ustawionej w bloku | ||
<literal>directive</literal>. | ||
</para> | ||
<para> | ||
Konstrukcja <literal>declare</literal> może być również używana w zakresie | ||
globalnym, wpływając na cały kod następujący po niej (jednak jeśli plik z | ||
konstrukcją <literal>declare</literal> został dołączony, nie ma to wpływu na | ||
plik nadrzędny). | ||
<informalexample> | ||
<programlisting role="php"> | ||
<![CDATA[ | ||
<?php | ||
// są takie same: | ||
// można użyć tego: | ||
declare(ticks=1) { | ||
// cały skrypt tutaj | ||
} | ||
// lub możesz użyć tego: | ||
declare(ticks=1); | ||
// cały skrypt tutaj | ||
?> | ||
]]> | ||
</programlisting> | ||
</informalexample> | ||
</para> | ||
|
||
<sect2 xml:id="control-structures.declare.ticks"> | ||
<title>Ticks</title> | ||
<para>Tick jest zdarzeniem, które występuje dla każdych | ||
<varname>N</varname> niskopoziomowych instrukcji tickable | ||
wykonywanych przez parser w bloku <literal>declare</literal>. | ||
Wartość <varname>N</varname> jest określana za pomocą | ||
<code>ticks=<varname>N</varname></code> | ||
w bloku <literal>declare</literal> | ||
sekcji <literal>directive</literal>. | ||
</para> | ||
<para> | ||
Nie wszystkie instrukcje są tickowalne. Zazwyczaj wyrażenia | ||
warunkowe i wyrażenia argumentów nie są tickowalne. | ||
</para> | ||
<para> | ||
Zdarzenia występujące przy każdym ticku są określane za pomocą | ||
funkcji <function>register_tick_function</function>. Więcej szczegółów | ||
można znaleźć w poniższym przykładzie. Należy pamiętać, że dla każdego ticku | ||
może wystąpić więcej niż jedno zdarzenie. | ||
</para> | ||
<para> | ||
<example> | ||
<title>Przykład użycia tick</title> | ||
<programlisting role="php"> | ||
<![CDATA[ | ||
<?php | ||
declare(ticks=1); | ||
// Funkcja wywoływana przy każdym zdarzeniu tick | ||
function tick_handler() | ||
{ | ||
echo "tick_handler() called\n"; | ||
} | ||
register_tick_function('tick_handler'); // powoduje zdarzenie tick | ||
$a = 1; // powoduje zdarzenie tiku | ||
if ($a > 0) { | ||
$a += 2; // powoduje zdarzenie tick | ||
print $a; // powoduje zdarzenie tick | ||
} | ||
?> | ||
]]> | ||
</programlisting> | ||
</example> | ||
</para> | ||
<simpara> | ||
Zobacz również funkcje <function>register_tick_function</function> i | ||
<function>unregister_tick_function</function>. | ||
</simpara> | ||
</sect2> | ||
<sect2 xml:id="control-structures.declare.encoding"> | ||
<title>Kodowanie</title> | ||
<para> | ||
Kodowanie skryptu można określić dla każdego skryptu za pomocą dyrektywy <literal>encoding</literal>. | ||
<example> | ||
<title>Deklarowanie kodowania dla skryptu</title> | ||
<programlisting role="php"> | ||
<![CDATA[ | ||
<?php | ||
declare(encoding='ISO-8859-1'); | ||
// tutaj kod | ||
?> | ||
]]> | ||
</programlisting> | ||
</example> | ||
</para> | ||
|
||
<caution> | ||
<simpara> | ||
W połączeniu z przestrzeniami nazw, jedyną legalną składnią dla declare jest | ||
<literal>declare(encoding='...');</literal> gdzie <literal>...</literal> | ||
jest wartością kodowania. <literal>declare(encoding='...') {}</literal> | ||
spowoduje błąd parsowania w połączeniu z przestrzeniami nazw. | ||
</simpara> | ||
</caution> | ||
<para> | ||
Zobacz również <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 | ||
--> |
Oops, something went wrong.