Ora che abbiamo capito come impostare i nostri file PHP e come aggiungere i commenti, addentriamoci nel linguaggio vero e proprio.

Il primo, fondamentale, bisogno di qualsiasi programma è quello di avere delle variabili. Pensiamo ad una variabile come ad un contenitore. Avrà un nome con il quale potremmo identificarla ed ovviamente un contenuto. In PHP, non abbiamo l’obbligo di doverle dichiarare prima dell’uso.

In PHP, le variabili sono precedute dal simbolo $ e possiamo assegnargli un valore di un certo tipo. I tipi di dati principali che PHP riconosce sono:

  • boolean
  • integer
  • float
  • string
  • array
  • object
  • callable

Assegnamo un valore

<?php
    $prova=27; // assegna 27 alla variabile $prova
    echo $prova;
?>

Output:
27

Ricordiamoci che le variabili sono distruttive: il loro valore viene sovrascritto quando ne assegnamo uno nuovo.

<?php
    $prova=27;
    $prova=16;
    echo $prova;
    //Output: 16
?>

Variabili boolean

Una variabile di tipo boolean può essere TRUE o FALSE. Sono fondamentali, come vedremo in seguito, nei costrutti condizionali if { .. }.

<?php
    $prova=true; // assegna TRUE alla variabile $prova
?>

Possiamo assegnare altri tipi di valori, che verranno interpretati automaticamente come TRUE o FALSE. 0, 0.0, una stringa vuota o NULL verranno interpretati sempre come FALSE. Ogni altri valore sarà interpretato come TRUE.

Variabili integer

Una variabile di tipo integer può avere un valore decimale, ottale o esadecimale. Possono essere sia negativi che positivi.

<?php
    $prova = 27; // decimale
    $prova = -27; // un negativo
    $prova = 0abc; // un esadecimale
?>

Variabili float

Le variabili con numeri in virgola mobile possono essere definiti in questo modo:

<?php
    $prova = 1.27;
?>

Variabili string

Una stringa è semplicemente una serie di caratteri. Questa deve essere racchiusa fra apici ' .. ' o doppie virgolette " .. ".

<?php
    $prova = "Ciao"; // doppie virgolette
    $prova = 'Ciao'; // singoli apici

    echo "$prova Luca";
    //Output: Ciao Luca
?>

A volte capita che gli stessi segni ' ' oppure " " debbano comparire nella stringa. Per questo caso possiamo usare il carattere di escape backslash \ per bypassarlo e non permettere che la stringa venga interrotta.

<?php
    echo 'Questa è una semplice stringa';
    
    echo 'Possiamo
scrivere su più righe.
Tutto funziona';

    echo 'Questa è un\'altra stringa';

    echo 'Questa è un'altra stringa'; // errore, viene interrotta

?>

Una sostanziale differenza è che usando le virgolette doppie " ", le variabili vengono sostituite dal loro valore, usando gli apici ‘ ‘ no.

<?php
    
    $mese_attuale = date("F");
   
    echo "Siamo nel mese di $mese_attuale";
    //Output: Siamo nel mese di Marzo

    echo 'Siamo nel mese di $mese_attuale';
    //Output: Siamo nel mese di $mese_attuale

?>

Una funzionalità interessante delle stringhe è che possiamo accedere ai singoli caratteri usando la loro posizione all’interno della stringa usando le parentesi quadre. Ricordiamoci che l’indice parte da zero.

<?php
    $stringa = "Questa è una prova";
    echo $stringa[3];
    //Output: s
?>

Concatenazione

Una o più stringhe possono essere concatenate usando il punto .

<?php
    echo "Questa " . " è una stringa" . "concatenata";
    
    $prova = "Luca";
 
    echo "Il mio nome è $prova";
    //Output: il mio nome è Luca

    echo "Il mio nome è " . $prova;
    //Output: il mio nome è Luca

?>

Variabili di variabili

Ci possono essere molti casi nei quali può esserci il bisogno che il nome di una variabile sia contenuto in un’altra variabile.

<?php
    
    $a = 'prova';
    $prova = 10;
    
    echo ${$a}; //output: 10
    
    // equivale a
    echo $prova;
    
?>

 

Le costanti

Una costante è un nome identificativo per un determinato valore. Come suggerisce il nome, esse vengono definite e non è possibile più cambiarle. Le costanti sono case-sensitive e per convenzione si scrivono in maiuscolo.

<?php
    
    //Le costanti non possono iniziare con un numero
    define("NOME", "luca");
    
    echo NOME;
    //Output: luca
    
?>