Alcune caratteristiche di PHP che forse non conoscevate
PHP, si sa, � uno dei pi� diffusi linguaggi di scripting lato server diffusi sul web, e la rete � ricca di guide, discussioni e materiale a riguardo. Nel corso degli anni � stato arricchito di numerosissime funzionalit�, e al giorno d'oggi l'elenco di funzioni e classi offerte nativamente � davvero folto, senza contare le estensioni di terze parti. Tuttavia, esistono alcune peculiarit� di questo linguaggio a livello di sintassi basilare che sono davvero poco note. Questo articolo ve ne presenta alcune.
- E' possibile inserire variabili di tipo INT con varie notazioni:
$a = 10e3; // Notazione esponenziale. $a = 1000;
$b = 0x12; // Notazione esadecimale. $b = 18;
-
Le stringhe possono essere definite con pi� sintassi, riassunte in questa tabella:
| Sintassi compatta | Sintassi estesa |
Stringa interpretata | Virgolette doppie | Heredoc |
Stringa non interpretata | Virgolette singole | Nowdoc |
L'interprete PHP riconosce e sostituisce caratteri speciali e variabili nelle stringhe definite con virgolette doppie:
$a = 5;
echo "Questo numero vale $a\nFine.";
che stampa a schermo:
Questo numero vale 5
Fine.
Analogamente, � possibile definire una sintassi estesa, chiamata heredoc, su pi� righe:
$a = 5;
echo <<<EOT
\n\n HEREDOC: Questo
numero vale $a\n
EOT;
che stampa a schermo:
HEREDOC: Questo
numero vale 5
Al contrario, se si usano le virgolette singole la stringa � riportata cos� come viene scritta:
$a = 5;
echo 'Questo numero vale $a\n'
visualizza
Questo numero vale $a\n
La sintassi equivalente estesa, introdotta con PHP 5.3, � si chiama Nowdoc.
echo <<<'EOT'
NOWDOC Questo
numero vale $a\n
EOT;
che visualizza:
NOWDOC Questo
numero vale $a\n
- Le strutture di controllo, come if..else, possono essere definite anche senza l'uso di parentesi graffe, analogamente a quanto avviene in altri linguaggi, come in MatLab:
if($a>10):
echo 'pippo';
endif
Oppure addirittura scrivendo un codice misto con l'HTML:
<?PHP if($a>10): ?>
<P>Questo � un testo in HTML</P>
<?PHP endif ?>
- Esiste una sintassi abbreviata per modificare una variabile a seguito di un'operazione sulla variabile stessa:
$x = 5;
$x .= 4; // Equivale a $x = $x . 4;
$x += 4; // Equivale a $x = $x + 4;
$x -= 4; // Equivale a $x = $x - 4;
$x *= 4; // Equivale a $x = $x * 4;
$x /= 4; // Equivale a $x = $x / 4;
$x %= 4; // Equivale a $x = $x % 4;
- E' possibile incrementare o decrementare una variabile facendovi precedere o seguire gli operatori ++ o --, come segue:
$x = 5;
// Visualizza 6: incrementa e restituisce il valore.
echo "Predecremento: " . ++$x . "\n";
$x = 5;
// Visualizza 5: restituisce il valore e incrementa.
echo "Postdecremento: " . $x++ . "\n";
- L'operatore ternario offre una sintassi abbreviata e sostitutiva a if.
Tale sintassi � molto sintetica e compatta, ma non bisogna abusarne per
evitare di rendere il codice troppo complesso e difficile da mantenere. In particolare, � buona pratica che la riga occupi meno di 80 caratteri e che non vi siano pi� condizioni indentate.
// (condizione)? codice_se_vera : codice_se_falsa;
$a = -2;
echo ($a>0) ? 'positivo' : 'negativo';
che visualizza
negativo
Fatal error: Call to undefined function sqlite_open() in /membri/giacobbe85/include/commenti.inc.php on line 324
|