IMC!


Contenuti


Foto

 







Curiosando...
Novita  Novità Link  Link Blog  Blog English  Español 
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.
  1. E' possibile inserire variabili di tipo INT con varie notazioni:

    $a = 10e3; // Notazione esponenziale. $a = 1000;
    $b = 0x12; // Notazione esadecimale. $b = 18;

  2. 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

  3. 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 ?>

  4. 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;

  5. 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";

  6. 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









Commenti

Nessun commento presente!

Scrivi un commento

Pui scrivere quì sotto un commento all'articolo che hai appena letto. Non sono abilitate smile, immagini e link. La lunghezza massima del commento è 4000 caratteri. La buona educazione è benvenuta, tutti i commenti offensivi saranno cancellati.

Your comment (lascia bianco!):
Utente (max 25 caratteri, obbligatorio)
Sito web (max 255 caratteri, facoltativo)
e-Mail (max 255 caratteri, facoltativa, non sarà pubblicata) Your opinion (lascia bianco!):
Commento (max 4000 caratteri, obbligatorio):





Valid HTML 4.01 Transitional
E-Mail - 568.84 ms

Valid HTML 4.01 Transitional