class: center, middle # PHP --- # Variabili in PHP - Tutte le variabili iniziano con `$` - Non serve dichiarare il tipo - Case-sensitive ```php $nome = "Marco"; $eta = 12; ``` --- # Tipi di dati principali - Stringhe, numeri interi, float, booleani - Array e oggetti - NULL ```php $nome = "Marco"; // stringa $eta = 12; // int $prezzo = 12.5; // float $is_active = true; // boolean ``` --- # Sintassi di base - `;` alla fine di ogni istruzione - `//` per commenti su una riga - `/* */` per commenti su più righe ```php // questo è un commento $x = 10; /* assegnamento */ ``` --- # Istruzione if - Controlla condizioni - Sintassi semplice o con else/elseif ```php if ($eta >= 18) { echo "Maggiorenne"; } else { echo "Minorenne"; } ``` --- # Istruzione while - Ciclo basato su condizione - Esegue finché la condizione è vera ```php $i = 0; while ($i < 5) { echo $i; $i++; } ``` --- # Istruzione for - Ciclo con contatore - Sintassi compatta ```php for ($i = 0; $i < 5; $i++) { echo $i; } ``` --- # Istruzione switch - Controlla più casi - Utile per valori discreti ```php $colore = "rosso"; switch($colore) { case "rosso": echo "Stop"; break; case "verde": echo "Vai"; break; default: echo "Attenzione"; } ``` --- # Array numerici - Indici numerici a partire da 0 - Funzioni utili: count(), print_r() ```php $frutti = ["mela", "banana", "pera"]; echo $frutti[1]; // banana ``` --- # Array associativi - Chiave => valore - Accesso tramite chiave ```php $eta_persone = ["Marco" => 12, "Martina" => 17]; echo $eta_persone["Marco"]; // stampa 12 ``` --- # $_GET $_POST - array associativi che contengono i parametri passati nella richiesta della pagina - es: $id_richiesto = $_GET["id"]; --- # Funzioni - Permettono riuso del codice - Parametri opzionali - `return` per restituire valore - notare l'operatore "." per concatenare due variabili di stringa ```php function saluta($nome) { return "Ciao " . $nome; } echo saluta("Davide"); ``` --- # Variabili locali e globali - Locale: visibile solo nella funzione - Globale: accessibile ovunque con `global` ```php $x = 10; function test() { global $x; echo $x; // 10 } ``` --- # Debug e var_dump - Visualizza info su variabili - Utile per debug rapido ```php $x = 42; var_dump($x); ``` --- # Istruzioni comuni - `isset()` controlla se variabile esiste - `empty()` verifica se vuota - `unset()` cancella variabile ```php $y = 5; if (isset($y)) echo "Esiste"; unset($y); ``` --- # Interfacciamento MySQL - connessione - Uso `mysqli` in modalità procedurale - Host, user, password, database ```php $host = "localhost"; $utente = "corso"; $password = "c0rs0"; $nome_db = "corso"; $conn = mysqli_connect($host, $utente , $password, $nome_db); if (!$conn) { die("Connessione fallita: " . mysqli_connect_error()); } ``` --- # Interfacciamento MySQL - query - `mysqli_query` per eseguire query - `mysqli_fetch_row` e `mysqli_fetch_assoc` per leggere risultati ```php $result = mysqli_query($conn, "SELECT id, nome FROM utenti"); while ($row = mysqli_fetch_assoc($result)) { echo $row['id'] . " " . $row['nome']; } ``` --- # Chiudere la connessione - In pratica non serve - alla fine dell'esecuzione della pagina le risorse vengono liberate, la generazione della pagina avviene in millisecondi - da usare se la pagina è pesante ```php mysqli_close($conn); ```