-
Notifications
You must be signed in to change notification settings - Fork 10
/
basic-syntax.xml
275 lines (257 loc) · 9.23 KB
/
basic-syntax.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
<?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
-->