1
0
mirror of https://github.com/php/doc-it.git synced 2026-03-24 07:32:12 +01:00
Files
archived-doc-it/language/basic-syntax.xml
2024-01-08 00:18:49 +00:00

276 lines
9.2 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 6b09bb638aa64d1fad5f4a630a8da9a2692ce733 Maintainer: pastore Status: ready -->
<!-- CREDITS: cucinato -->
<chapter xml:id="language.basic-syntax" xmlns="http://docbook.org/ns/docbook">
<title>Sintassi Fondamentale</title>
<sect1 xml:id="language.basic-syntax.phptags">
<title>Tag PHP</title>
<para>
Quando PHP inizia a esaminare un file, cerca i tag di apertura e di chiusura, che sono
<literal>&lt;?php</literal> e <literal>?&gt;</literal>, i quali indicano a PHP
dove iniziare e terminare l'interpretazione del codice. Questa tecnica
permette a PHP di essere incorporato in tutte le tipologie di documenti, poiché
ogni cosa esterna ai tag di apertura e di chiusura viene ignorata dal
parser PHP.
</para>
<para>
PHP include un tag echo abbreviato <literal>&lt;?=</literal> che è una
scorciatoia al più verboso <code>&lt;?php echo</code>.
</para>
<para>
<example>
<title>Tag di Apertura e Chiusura di PHP</title>
<programlisting role="php">
<![CDATA[
1. <?php echo 'se vuoi servire codice PHP in documenti XHTML o XML,
usa questi tag'; ?>
2. Puoi usare il tag echo abbreviato per <?= 'stampare questa stringa' ?>.
È equivalente a <?php echo 'stampare questa stringa' ?>.
3. <? echo 'questo codice è all\'interno di tag abbreviati, ma funzionerà solo '.
'se short_open_tag è abilitato'; ?>
]]>
</programlisting>
</example>
</para>
<para>
I tag brevi (esempio tre) sono disponibili per impostazione predefinita ma possono essere disabilitati
tramite la direttiva <link linkend="ini.short-open-tag">short_open_tag</link>
del file di configurazione &php.ini;, o sono disabilitati per impostazione predefinita se
PHP è compilato con la configurazione <option>--disable-short-tags</option>.
</para>
<para>
<note>
<para>
Poiché i tag brevi possono essere disabilitati, si consiglia di utilizzare solo i tag
normali (<code>&lt;?php? ?&gt;</code> e <code>&lt;?= ?&gt;</code>) per
massimizzare la compatibilità.
</para>
</note>
</para>
<para>
Se un file contiene solo codice PHP, è consigliato di omettere il tag di chiusura di PHP
alla fine del file. Questo evita che vengano aggiunti spazi o ritorni a capo
dopo il tag di chiusura di PHP, che può creare effetti indesiderati
poiché PHP comincerà a processare l'output quando in realtà non c'è intenzione da parte
dello sviluppatore di inviare dell'output in quella parte dello script.
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
echo "Hello world";
// ... altro codice
echo "Last statement";
// lo script finisce qui senza tag di chiusura
]]>
</programlisting>
</informalexample>
</para>
</sect1>
<sect1 xml:id="language.basic-syntax.phpmode">
<title>Uscita dal modo HTML</title>
<para>
Tutto ciò che esiste fuori dai tag di apertura e chiusura è ignorato
dall'analizzatore PHP, il che permette di avere contenuto misto nei file PHP. Questo permette a PHP
di essere incluso nei documenti HTML, per esempio per creare modelli.
<informalexample>
<programlisting role="php">
<![CDATA[
<p>Questo sarà ignorato dea PHP e verrà visualizzato nel browser.</p>
<?php echo 'Questo invece sarà interpretato.'; ?>
<p>Pure questo sarà ignorato dea PHP e verrà visualizzato nel browser.</p>
]]>
</programlisting>
</informalexample>
Questo codice si comporta come desiderato, perché quando l'interprete PHP incontra il tag di chiusura
?&gt;, comincia semplicemente a visualizzare tutto ciò che trova (tranne che per la
nuova riga immediatamente successiva - vedere
l'<link linkend="language.basic-syntax.instruction-separation">istruzione di separazione</link>)
finché non incontra un altro tag di apertura, a meno che non si trovi in una istruzione
condizionale, nel qual caso l'interprete determinerà il risultato della
condizione prima di prendere una decisione su cosa ignorare.
Vedere l'esempio seguente.
</para>
<para>
Utilizzo di strutture con condizioni
<example>
<title>Escape avanzato con le condizioni</title>
<programlisting role="php">
<![CDATA[
<?php if ($expression == true): ?>
Questo sarà viualizzato se l'espressione $expression è vera.
<?php else: ?>
Altrimenti verrà visualizzata questa linea.
<?php endif; ?>
]]>
</programlisting>
</example>
In questo esempio PHP ignorerà i blocchi di codice in cui la condizione non è verificata, anche
se sono fuori dai tag di apertura/chiusura; PHP li ignora a seconda
della condizione dal momento che l'interprete PHP scavalca i blocchi contenuti
in una condizione non verificata.
</para>
<para>
Nella visualizzazione di grossi blocchi di testo uscire dalla
modalità di parsing del codice PHP è generalmente più efficiente che inviare il tutto
tramite <function>echo</function> o <function>print</function>.
</para>
<para>
<note>
<para>
Se PHP è incorporato in XML o XHTML, devono essere utilizzati
i normali tag PHP <code>&lt;?php ?&gt;</code> per rimanere conformi
agli standard.
</para>
</note>
</para>
</sect1>
<sect1 xml:id="language.basic-syntax.instruction-separation">
<title>Separazione delle istruzioni</title>
<para>
Come in C od in Perl, il PHP richiede che le istruzioni siano chiuse
dal punto e virgola al termine di ogni istruzione. I tag di chiusura
di un blocco di codice PHP implicano in automatico il punto e virgola;
non occorre, pertanto, inserire il punto e virgola per chiudere l'ultima riga
di un blocco PHP. Il tag di chiusura del blocco include il newline
immediatamente seguente, se presente.
</para>
<para>
<example>
<title>Esempio che mostra il tag di chiusura che racchiude una nuova riga</title>
<programlisting role="php">
<![CDATA[
<?php echo "Un po' di testo"; ?>
Nessuna nuova riga
<?= "Ma nuova riga ora" ?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Un po' di testoNessuna nuova riga
Ma nuova riga ora
]]>
</screen>
</example>
</para>
<para>
Esempi di accesso ed uscita dal parser PHP:
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
echo 'Questo è un test';
?>
<?php echo 'Questo è un test' ?>
<?php echo 'Qui è stato omesso il tag di chiusura';
]]>
</programlisting>
</informalexample>
<note>
<para>
Il tag di chiusura di un blocco PHP alla fine di un file è opzionale,
ed in alcuni casi è utile ometterlo quando si utilizzano
le funzioni <function>include</function> o <function>require</function>, in modo che spazi indesiderati
non vengano generati alla fine dei file, e quindi sia ancora possibile aggiungere
intestazioni alla risposta HTTP. È utile anche quando si usa l'output
buffering, e non si vogliono avere spazi indesiderati
alla fine delle parti generate dai file inclusi.
</para>
</note>
</para>
</sect1>
<sect1 xml:id="language.basic-syntax.comments">
<title>Commenti</title>
<para>
PHP supporta i commenti dei linguaggi 'C', 'C++' e stile shell (stile Perl) di Unix. Per esempio:
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
echo 'Questo è un test'; // Questo è un commento su una linea nella stile c++
/* Questo è un commento su più linee
ancora un'altra linea di commento */
echo 'Questo è un altro test';
echo 'Un ultimo test'; # Questo è un commento stile shell Unix
?>
]]>
</programlisting>
</informalexample>
</para>
<simpara>
Lo stile di commento su "una linea", attualmente commenta solo fino alla fine della linea
o del blocco corrente di codice PHP.
Questo significa che l'eventuale codice HTML posto dopo <literal>// ... ?&gt;</literal>
o <literal># ... ?&gt;</literal> sarà stampato:
?&gt; esce dalla modalità PHP e ritorna in modalità HTML, e quindi
<literal>//</literal> non può influenzare quest'ultima.
</simpara>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
<h1>Questo è un <?# echo 'semplice';?> esempio.</h1>
<p>L'intestazione qui sopra dirà 'Questo è un esempio'.</p>
]]>
</programlisting>
</informalexample>
</para>
<simpara>
I commenti in stile C terminano alla prima occorrenza di <literal>*/</literal>.
Occorre fare attenzione nel non annidare i commenti di stile C, situazione che si presenta
quando si commentano larghi blocchi di codice.
</simpara>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
/*
echo 'Questo è un test'; /* Questo commento causerà dei problemi */
*/
?>
]]>
</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
-->