PHP/Programmazione/Commenti: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
FrescoBot (discussione | contributi)
m Bot: sintassi e spaziatura dei link
Pagina rivisitata
Riga 1:
{{PHP}}
 
All'interno dei tag <code><?php</code> e <code>?></code> è possibile inserire dei '''[[Commento (informatica)|commenti al codice]]''', ovvero porzioni di testo opportunamente marcate che verranno ignorate dal motore PHP durante il ''parsing'' degli script.
 
L'uso dei commenti ha vari benefici, tra cui:
Un commento ha una doppia valenza:
#rende rendere più leggibile il sorgente da parte di altri utenti che eventualmente debbano variare lo script PHP (utile soprattutto nei casi di '''collaborazione''' tra più persone).;
#può servire per non eseguire una parte di codice che però potrebbe essere necessario riprendere successivamente (ad esempio per dei '''test''');
# non eseguire una parte di codice senza doverla spostare o cancellare (potrebbe tornare utile in futuro, ad esempio).
#rende più leggibile il sorgente da parte di altri utenti che eventualmente debbano variare lo script PHP (utile soprattutto nei casi di '''collaborazione''').
 
== Sintassi ==
 
Il codice può essere commentato in tre modi:
 
<source lang="php">
<?php
 
// Commento su singola linea in stile 'C++'
 
# Commento su singola linea in stile 'Unix shell'
 
/* Commento multilinea (in stile 'C').
Al suo interno è ammessa qualsiasi cosa,
eccetto il delimitatore finale */
 
PHP supporta i commenti sia stile [[w:C (linguaggio)|C]] che stile shell ([[w:Perl (linguaggio)|Perl]]).
<br/>Il commento a linea singola quindi viene pertanto interpretato sia con <code>//</code> che con <code>#</code> anteposti alla parte di scripting da commentare.
<source lang=php>
echo "questa riga viene eseguta";
// echo "pippo";
# echo "pluto";
echo "anche questa"; //questo codice è ignorato echo ("anche questo")
</source>
In questo caso non verranno eseguite la seconda e la terza riga e la seconda parte della quarta (dal commento in poi).
 
La differenza sostanziale è tra i primi due, che fanno uso di un solo delimitatore ma possono estendersi su una singola riga, e il terzo, che può estendersi su più righe.
È importante sottolineare che se i caratteri di commento non sono posti a inizio riga commentano solo tutto quello che si trova sulla stessa riga a destra del commento; pertanto occorre stare attenti alla sintassi per non incappare in errori. Ad esempio è corretto:
 
<source lang=php>
Qualsiasi codice PHP presente nei commenti non viene eseguito dal ''parser'' tranne il tag di chiusura <code>?></code> nei tipi a singola linea. Si veda il seguente esempio:
<?php
 
echo "pippo"; // Scrivo pippo
<source lang="php">
?>
<?php
echo 'Primo esempio'; // Commento del primo esempio ?>
echo 'Altro testo';
</source>
Ma attenti a scrivere:
<source lang=php>
<?php echo "pippo"; // Scrivo pippo ?>
</source>
In apparenza questi due esempi potrebbero sembrare uguali ma nel secondo caso la chiusura del tag PHP è posta sulla stessa riga a destra del commento, pertanto il linguaggio non interpreterà la chiusura del tag <code><?php</code> e segnalerà un errore di sintassi.
 
Come detto, pur trovandosi sulla stessa riga del commento, il tag di chiusura '''non''' sarà ignorato e il secondo <code>echo</code> verrebbe interamente inviato in output al browser (in quanto esterno allo script). Anche usando il carattere <code>#</code> le cose non sarebbero andate diversamente.
È possibile commentare anche più di una riga di codice per volta utilizzando <code>/* testo */</code>.
 
Tutto quello che si trova tra <code>/*</code> e <code>*/</code> risulta essere un commento.
La sintassi multi-linea, invece, non è affetta da questo rischio:
<source lang=php>
 
echo "questo viene eseguito"; /*
<source lang="php">
Linea 1 di commento
<?php
Linea 2 di commento
 
*/
/*
echo /* "questo no" */ "anche questo" ;
* Esempio di commento in cui il parser non
* elabora il tag di chiusura: ?>
*/
echo 'Secondo esempio';
?>
</source>
 
Occorre fare attenzione nel non annidare i commenti di stile C, situazione che si presenta quando si commentano larghi blocchi di codice.
Si tratta di una tipologia usata spesso all'inizio degli script per descrivere lo scopo del file. Le uniche attenzioni che richiede sono di non dimenticare il delimitatore di chiusura (causerebbe errore durante l'esecuzione) e di non annidare altri commenti scritti con la stessa sintassi. A tal proposito si veda il seguente codice:
<source lang=php>
 
/*
<source lang="php">
echo 'Questo è il primo commento'; /* Questo commento dà errore */
<?php
/*
echo 'prova'; /* Test di esecuzione */
*/
</source>
 
Questo potrebbe essere un classico caso di codice scritto per verificare la corretta esecuzione (se appare "prova" nell'output vuol dire che funziona) commentato per eseguire altri test in futuro. Tuttavia il parser interpreterà il primo delimitatore di chiusura come la '''fine dell'intero commento''', generando un errore di sintassi appena arriverà al successivo delimitatore. Pertanto non è possibile annidare commenti all'interno di altri.
Tutta la parte in grassetto rappresenta un unico commento per cui <code>*/</code> nella riga successiva genererà un errore
 
[[Categoria:PHP|Commenti al codice]]
{{Avanzamento|100%}}