1
0
mirror of https://github.com/php/doc-pl.git synced 2026-03-24 23:22:07 +01:00
Files
archived-doc-pl/language/basic-syntax.xml
Maciej Sobaczewski 756e3c51ff Sync with EN
2025-02-17 04:31:51 +01:00

275 lines
9.3 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: f4f96ef8b2a95283c92ea2183fe1dedf06f3ad22 Maintainer: cyb0org Status: ready -->
<!-- $Revision$ -->
<!-- CREDITS: adi, sobak -->
<chapter xml:id="language.basic-syntax" xmlns="http://docbook.org/ns/docbook">
<title>Podstawowa składnia</title>
<sect1 xml:id="language.basic-syntax.phptags">
<title>Znaczniki PHP</title>
<para>
Kiedy PHP przetwarza plik, szuka otwierających i zamykających znaczników (tagów)
(są nimi <literal>&lt;?php</literal> i <literal>?&gt;</literal>),
które mówią PHP o rozpoczęciu i zakończeniu interpretowania kodu pomiędzy
nimi. Przetwarzanie w taki sposób pozwala zagnieżdzać PHP w dowolnym
rodzaju dokumentów, ponieważ wszystko poza parą
znaczników, otwierającym i zamykającym jest ignorowane przez parser PHP.
</para>
<para>
PHP pozwala także na użycie krótkiego tagu drukującego <literal>&lt;?=</literal>,
który jest skrótem dla dłuższego <code>&lt;?php echo</code>.
</para>
<para>
<example>
<title>PHP Opening and Closing Tags</title>
<programlisting role="php">
<![CDATA[
1. <?php echo 'jeśli chcesz umieścić kod PHP w dokumentach XHTML lub XML,
wtedy użyj tych tagów'; ?>
2. Możesz użyć krótkich tagów drukujących aby <?= 'wydrukować ten ciąg znaków' ?>.
Jest to równoważne z <?php echo 'drukowanie tego ciągu znaków' ?>.
3. <? echo 'ten kod jest pomiędzy krótkimi tagami, ale zadziała tylko wtedy'.
'kiedy włączone jest short_open_tag'; ?>
]]>
</programlisting>
</example>
</para>
<para>
Krótkie tagi (przykład trzeci) są domyślnie dostępne, ale mogą zostać wyłączone
przez dyrektywę <link linkend="ini.short-open-tag">short_open_tag</link>
&php.ini; w pliku konfiguracyjnym, lub być domyślnie wyłączone jeżeli
PHP jest zbudowane z konfiguracją <option>--disable-short-tags</option>.
</para>
<para>
<note>
<para>
Ponieważ krótkie tagi mogą być wyłączone zaleca się używanie jedynie normalnych
tagów (<code>&lt;?php ?&gt;</code> and <code>&lt;?= ?&gt;</code>) aby
maksymalnie zwiększyć kompatybilność.
</para>
</note>
</para>
<para>
Jeżeli plik zawiera jedynie kod PHP, zaleca się pominięcie zamykającego tagu PHP na końcu pliku.
Zapobiega to dodaniu przypadkowych białych znaków lub nowych linii dodanych po zamknięciu bloku PHP,
co może spowodować niechciane efekty ponieważ PHP zacznie buforowanie wyjścia, gdy nie było to intencją
programisty na tym etapie wykonywania skryptu.
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
echo "Witaj, świecie!";
// ... więcej kodu
echo "Ostatnie wyrażenie";
// skrypt kończy się w tym miejscu, bez tagu zamykającego PHP
]]>
</programlisting>
</informalexample>
</para>
</sect1>
<sect1 xml:id="language.basic-syntax.phpmode">
<title>Wyskakiwanie z HTML</title>
<para>
Wszystko na zewnątrz tagów PHP jest ignorowane przez parser, co pozwala plikom PHP
mieć mieszaną zawartość. To pozwala na zagnieżdżanie PHP w plikach HTML, na przykład
w celu stworzenia szablonów.
<informalexample>
<programlisting role="php">
<![CDATA[
<p>To zostanie zignorowane przez PHP i wyświetlone w przeglądarce.</p>
<?php echo 'Podczas gdy to zostanie sparsowane.'; ?>
<p>To także zostanie zignorowane przez PHP i wyświetlone w przeglądarce.</p>
]]>
</programlisting>
</informalexample>
To działa tak, jak się spodziewano, ponieważ kiedy interpreter PHP natrafi na zamykający
znacznik ?&gt;, poprostu zaczyna wyświetlać cokolwiek znajdzie (z wyjątkiem
bezpośrednio następującej nowej linii - zobacz
<link linkend="language.basic-syntax.instruction-separation">oddzielanie instrukcji</link>)
dopóki nie natrafi na kolejny otwierający znacznik - chyba, że znajdzie się to wewnątrz
instrukcji warunkowej; w tym wypadku interpreter najpierw sprawdzi wynik instrukcji, aby
zdecydować co pominąć.
Zobacz kolejny przykład:
</para>
<para>
Wykorzystanie struktur z warunkami
<example>
<title>Zaawansowane wyskakiwanie przy użyciu warunków</title>
<programlisting role="php">
<![CDATA[
<?php if ($expression == true): ?>
To pokaże się, jeżeli wyrażenie jest prawdziwe.
<?php else: ?>
W przeciwnym wypadku pokaże się to.
<?php endif; ?>
]]>
</programlisting>
</example>
W tym przykładzie PHP pominie bloki, gdzie warunek nie jest spełniony, nawet
jeżeli są one poza tagami PHP. PHP pomija je odpowiednio do warunku,
ponieważ interpreter przeskakuje bloki zawarte w instrukcji, która nie została
spełniona.
</para>
<para>
Dla wyświetlania większych ilości tekstu, wyjście z trybu parsowania PHP
jest ogólnie rzecz biorąc bardziej wydajne niż wysyłanie całego tekstu przez
funkcje <function>echo</function> lub <function>print</function>.
</para>
<para>
<note>
<para>
Zauważ również, że jeśli zagnieżdzasz PHP w XML lub XHTML
musisz stosować znaczniki &lt;?php ?&gt; aby pozostać
w zgodzie ze standardami.
</para>
</note>
</para>
</sect1>
<sect1 xml:id="language.basic-syntax.instruction-separation">
<title>Oddzielanie instrukcji</title>
<para>
Podobnie jak C i Perl, PHP wymaga aby instrukcje były zakończone
średnikiem, na końcu każdego wyrażenia. Zamykający znacznik bloku
kodu PHP automatycznie implikuje średnik; nie musisz mieć
średnika zamykającego ostatnią linię z bloku PHP. Zamykający znacznik
dla bloku będzie zawierać bezpośrednio następujący
końcowy znak nowej linii jeśli ten znacznik istnieje.
</para>
<para>
<example>
<title>Przykład pokazujący zamykający znacznik, który obejmuje końcowy znak nowej linii</title>
<programlisting role="php">
<![CDATA[
<?php echo "Jakiś tekst"; ?>
Brak znaku nowej linii
<?= "Ale teraz już z nową linią" ?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Jakiś tekstBrak znaku nowej linii
Ale teraz już z nową linią
]]>
</screen>
</example>
</para>
<para>
Przykłady wejścia i wyjścia z parsera PHP:
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
echo 'To jest test';
?>
<?php echo 'To jest test' ?>
<?php echo 'Pominęliśmy ostatni zamykający znacznik';
]]>
</programlisting>
</informalexample>
<note>
<para>
Zamykający znacznik bloku PHP na końcu pliku jest opcjonalny,
i w niektórych przypadkach pominięcie jego jest pomocne kiedy używamy
<function>include</function> lub <function>require</function>, aby
niechciane białe znaki nie znajdowały się na końcu pliku, i ciągle
było możliwe późniejsze dodanie nagłówków do odpowiedzi. To jest także poręczne jeśli używane jest
buferowania wyjścia, i nie chcemy zobaczyć dodanych niechcianych białych znaków
na końcu cześci generowanej przez załączony plik.
</para>
</note>
</para>
</sect1>
<sect1 xml:id="language.basic-syntax.comments">
<title>Komentarze</title>
<para>
PHP obsługuje komentarze w stylu 'C', 'C++' i powłoki Unix (styl Perl\'a). Na przykład:
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
echo 'To jest test'; // To jest jednoliniowy komentarz w stylu c++
/* To jest wieloliniowy komentarz
jeszcze jedna linia komentarza */
echo 'To jest jeszcze jeden test';
echo 'Ostatni Test'; # To jest jednoliniowy komentarz w stylu powłoki
?>
]]>
</programlisting>
</informalexample>
</para>
<simpara>
"Jednolinijkowy" styl komentarzy obowiązuje jedynie do konca
linii lub bieżącego bloku kodu PHP, cokolwiek wystąpi pierwsze.
Co oznacza, że kod HTML za <literal>// ... ?&gt;</literal>
lub <literal># ... ?&gt;</literal> ZOSTANIE wyświetlony:
?&gt; przerywa tryb PHP i wraca do trybu HTML, i
<literal>//</literal> lub <literal>#</literal> nie może na to wpłynąć.
</simpara>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
<h1>To jest <?php # echo 'prosty';?> przykład</h1>
<p>Nagłowek powyżej będzie mówił 'To jest przykład'.</p>
]]>
</programlisting>
</informalexample>
</para>
<simpara>
Komentarze w stylu 'C' kończą się na pierwszym napotkanym <literal>*/</literal>.
Upewnij się, że nie zagnieżdżasz komentarzy w stylu 'C'. Łatwo jest popełnić
pomyłkę, jeśli próbujesz odkomentować duży blok kodu.
</simpara>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
/*
echo 'To jest test'; /* Ten komentarz będzie przyczyną problemów */
*/
?>
]]>
</programlisting>
</informalexample>
</para>
</sect1>
</chapter>
<!-- 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
-->