mirror of
https://github.com/php/doc-it.git
synced 2026-03-24 07:32:12 +01:00
276 lines
9.2 KiB
XML
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><?php</literal> e <literal>?></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><?=</literal> che è una
|
|
scorciatoia al più verboso <code><?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><?php? ?></code> e <code><?= ?></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
|
|
?>, 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><?php ?></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>// ... ?></literal>
|
|
o <literal># ... ?></literal> sarà stampato:
|
|
?> 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
|
|
-->
|