Lezione 5 — Variabili e tipi di dato in PHP: Guida Completa

Scopri come gestire i dati in PHP: dalle variabili alle tipologie di dato, con esempi pratici su stringhe, numeri, array e booleani.

Introduzione alle Variabili in PHP

Nel percorso di apprendimento di PHP, comprendere le variabili è fondamentale. Immagina una variabile come un "contenitore" etichettato in cui puoi memorizzare un'informazione per utilizzarla, modificarla o richiamarla in un punto diverso del tuo codice. Senza le variabili, i programmi sarebbero statici: ogni pagina mostrerebbe esattamente le stesse informazioni a ogni utente, senza possibilità di personalizzazione o calcoli dinamici.

In PHP, le variabili sono estremamente flessibili. A differenza di linguaggi come Java o C++, PHP è un linguaggio a tipizzazione dinamica. Ciò significa che non è necessario dichiarare esplicitamente che tipo di dato una variabile conterrà (ad esempio, se sarà un numero o un testo); PHP capirà automaticamente il tipo di dato in base al valore che assegni alla variabile nel momento in cui la crei.

Regole di sintassi per le variabili

Per dichiarare una variabile in PHP, devi seguire alcune regole ferree, altrimenti l'interprete genererà un errore di sintassi:

  1. Il simbolo del dollaro: Ogni variabile deve iniziare con il simbolo $. Questo permette a PHP di distinguere immediatamente tra una costante, una funzione o una variabile.
  2. Il nome della variabile: Deve iniziare con una lettera o un trattino basso (_). Non può iniziare con un numero.
  3. Caratteri ammessi: I nomi possono contenere solo lettere, numeri e trattini bassi (A-z, 0-9, e _).
  4. Case-sensitivity: Le variabili sono sensibili alle maiuscole. $Utente e $utente sono due variabili diverse.

Approfondimento sui Tipi di Dato

PHP supporta diversi tipi di dato, ognuno dei quali serve a uno scopo specifico. Scegliere il tipo corretto (anche se PHP lo fa per noi automaticamente) è essenziale per scrivere codice efficiente e prevenire bug logici.

1. Stringhe (Strings)

Una stringa è una sequenza di caratteri. In PHP, le stringhe possono essere racchiuse tra virgolette singole (') o doppie (").

  • Virgolette singole: Sono più veloci perché PHP le tratta come testo letterale.
  • Virgolette doppie: Permettono l'interpolazione delle variabili. Se inserisci una variabile all'interno di una stringa tra doppie virgolette, PHP sostituirà automaticamente il nome della variabile con il suo valore.

2. Numeri (Integers e Floats)

Esistono due tipi principali di numeri:

  • Integer (Interi): Numeri senza decimali (es. 42, -100).
  • Float (Numeri a virgola mobile): Numeri con decimali (es. 19.99, 3.14).

3. Booleani (Booleans)

Il tipo booleano rappresenta un valore di verità: può essere solo true (vero) o false (falso). Sono fondamentali per le strutture di controllo come l'istruzione if.

4. Array

Un array è una variabile speciale che può contenere più valori contemporaneamente. È come una lista della spesa dove ogni elemento ha una posizione (indice).

5. NULL

NULL è un tipo di dato speciale che indica che una variabile non ha valore. Una variabile è NULL se è stata assegnata esplicitamente il valore null o se è stata dichiarata ma non ancora inizializzata.

Esempi di codice e implementazione

Vediamo ora come mettere in pratica questi concetti. In questo esempio, creeremo un piccolo sistema di profilo utente per mostrare l'interazione tra diversi tipi di dato.

<?php
// 1. Dichiarazione di variabili con diversi tipi di dato
$nomeUtente = "Mario Rossi"; // Stringa
$eta = 28;                    // Integer
$altezza = 1.75;              // Float
$isAbbonato = true;           // Boolean
$interessi = ["Programmazione", "Musica", "Cinema"]; // Array
$dataUltimoAccesso = null;    // NULL

// Esempio di interpolazione delle stringhe (Virgolette doppie)
echo "Ciao, mi chiamo $nomeUtente e ho $eta anni.\
";

// Esempio di concatenazione (Virgolette singole e punto)
echo 'La mia altezza è ' . $altezza . ' metri.\
';

// Utilizzo di un booleano in una condizione
if ($isAbbonato) {
    echo "Benvenuto nell'area Premium!\
";
} else {
    echo "Per favore, abbonati per vedere i contenuti.\
";
}

// Accesso agli elementi di un array
echo "Il mio interesse principale è: " . $interessi[0];
?>

Spiegazione del codice:

  • Abbiamo utilizzato il punto (.) per concatenare stringhe e variabili, che è l'operatore standard in PHP.
  • Abbiamo mostrato la differenza tra l'uso di $nomeUtente dentro le virgolette doppie (interpolazione) e l'uso del punto per unire i pezzi di testo.
  • L'array $interessi è stato interrogato tramite l'indice [0], ricordando che in programmazione si inizia a contare da zero.

Operazioni e Conversione dei Tipi (Type Casting)

Poiché PHP è a tipizzazione dinamica, a volte potresti voler forzare una variabile a diventare di un certo tipo. Questo processo si chiama Type Casting.

Perché farlo? Immagina di ricevere un dato da un modulo HTML (un input di testo). Anche se l'utente scrive un numero, PHP lo riceverà come stringa. Se devi fare un calcolo matematico preciso, potrebbe essere utile convertirlo esplicitamente in intero.

Ecco come funziona il casting:

<?php
$valoreStringa = "100"; // Questo è un testo

// Conversione in intero
$valoreIntero = (int)$valoreStringa;

// Conversione in float
$valoreFloat = (float)$valoreStringa;

// Verifica dei tipi con var_dump()
var_dump($valoreStringa);
var_dump($valoreIntero);
var_dump($valoreFloat);
?>

Analisi tecnica: La funzione var_dump() è lo strumento più potente per un principiante. A differenza di echo, che stampa solo il valore, var_dump() stampa sia il tipo di dato che il valore. Se usi var_dump su $valoreIntero, vedrai int(100), confermando che la conversione è avvenuta con successo.

Esempi Pratici: Casi d'uso Reali

Caso 1: Calcolo del prezzo finale di un prodotto

In un e-commerce, avrai bisogno di gestire prezzi (float), quantità (integer) e nomi prodotto (string).

<?php
$nomeProdotto = "Tastiera Meccanica";
$prezzoUnitario = 89.99;
$quantita = 2;
$sconto = 0.10; // 10% di sconto

$totaleLordo = $prezzoUnitario * $quantita;
$valoreSconto = $totaleLordo * $sconto;
$totaleNetto = $totaleLordo - $valoreSconto;

echo "Prodotto: $nomeProdotto\
";
echo "Totale da pagare: €" . $totaleNetto;
?>

Caso 2: Gestione di uno stato di login

Utilizzando i booleani, puoi decidere cosa mostrare a un utente.

<?php
$isLoggedIn = false;
$username = "Guest";

if ($isLoggedIn) {
    echo "Ciao $username, ben tornato!";
} else {
    echo "Ciao ospite, effettua il login per continuare.";
}
?>

Errori comuni e FAQ

Perché ricevo un errore "Undefined variable"?

Questo accade quando provi a usare una variabile che non è stata ancora creata o assegnata. In PHP, non puoi leggere il valore di qualcosa che non esiste. Assicurati di aver inizializzato la variabile prima di usarla.

Differenza tra == e ===

Questo è un punto cruciale legato ai tipi di dato.

  • == (Uguaglianza): Controlla se i valori sono uguali, ignorando il tipo. Ad esempio, "5" == 5 è true.
  • === (Identità): Controlla se i valori sono uguali e se sono dello stesso tipo. In questo caso, "5" === 5 è false, perché uno è una stringa e l'altro un intero.

Posso cambiare il tipo di una variabile a metà codice?

Sì, puoi. Ad esempio, puoi assegnare $x = 10; (intero) e subito dopo $x = "Ciao"; (stringa). Tuttavia, questa è una pratica sconsigliata perché rende il codice confuso e difficile da manutenere.

Prossimi passi

Ora che hai familiarità con le variabili e i tipi di dato, sei pronto per passare alla logica di programmazione. Le variabili sono i mattoni, ma per costruire una casa servono le istruzioni.

Nelle prossime lezioni approfondiremo:

  1. Gli Operatori: Come sommare, sottrarre e confrontare le variabili.
  2. Le Strutture di Controllo: Come usare l'istruzione if e switch per creare percorsi diversi nel programma.
  3. I Cicli: Come ripetere un'operazione su un array di variabili.

Per fare pratica, prova a creare uno script che calcoli l'area di un cerchio utilizzando una variabile per il raggio e una costante per il valore di Pi greco!