Salta al contenuto principale

Le variabili in PHP

Profile picture for user luca77king

Una variabile PHP inizia sempre con il segno del dollaro ($), per far capire all’interprete PHP che si tratta di una variabile. Quello che viene dopo è il nome della variabile che dovrebbe essere descrittiva circa il suo scopo.

Sono ammessi i caratteri alfanumerici (ad es.A-Z, a-z e 0-9) e trattini bassi (_), ma il nome non può iniziare con una cifra. Se la variabile contiene altri caratteri o inizia con una cifra, il programma andrà in errore.

Assegnare un valore a una variabile

Una variabile è inutile se non le si assegnano dei dati. L'assegnazione di dati ad una variabile avviene in questo modo:

<?php
$user_name = ‘Luca’;
?>

Ora abbiamo una variabile chiamata $user_name che contiene il valore stringa "Luca". Si noti che nell’esempio ho usato gli apici singoli (‘) ma avrei potuto usare anche gli apici doppi (“). In questa seconda ipotesi, lo script PHP compirà uno sforzo di elaborazione ulteriore, infatti gli apici doppi possono contenere altre variabili che saranno elaborate.

<?php
$user = ‘Luca’;
$user_name = “$user”;
?>

Stampare le variabili

Possiamo stampare a video il valore di una variabile utilizzando il comando echo.

<?php
$user_name = ‘Luca’;
echo $user_name;
?>

Se si vuole concatenare una variabile con una stringa statica, si può usare un punto (.) per unire le stringhe, in questo modo:

<?php
$user_name = ‘Luca’;
// Viene stampato "Ciao Luca!".
echo 'Ciao ' . $user_name . '!';
?>

Informazioni sui tipi di dato PHP

Nella maggior parte degli altri linguaggi di programmazione, il tipo di dati di una variabile deve essere definito. In PHP il tipo di dato è definito implicitamente, il che significa che il tipo verrà impostato automaticamente in base al valore assegnato alla variabile.

<?php
// Contiene un intero
$int = 12;
// Contiene una stringa
$string = 'Ciao';

È comunque possibile specificare il tipo di dato attraverso un’operazione chiamata casting, attraverso la quale si forza l’interprete a definire il tipo di dato secondo le nostre istruzioni.

<?php
// Contiene una stringa
$int = (string) 12;

Tipo di dato null

Il tipo di dato null si riferisce a "niente". Ogni variabile a cui non viene assegnato alcun valore sarà una variabile di tipo null, con un “peso” di esattamente 0 byte. Assegnando null a una variabile, il contenuto della stessa verrà cancellato dalla memoria.

<?php
// Una variabile senza alcun valore assegnato, equivale a null
$user_name;
// Ora $user_name non è più null
$user_name = 'Luca';
// $user_name è di nuovo nullo, e la stringa 'Luca' è stata è stata cancellata dalla memoria
$user_name = null;
// $user_name non è di nuovo null
$user_name = 'Luca';
// unset() è una funzione PHP che equivale a definire $user_name = null;
unset($user_name);
?>

Cambio di tipo

Avete visto cosa abbiamo appena fatto? Siamo passati da un tipo di dato null a un tipo di dato stringa e poi di nuovo null. Questo è possibile perché PHP è un linguaggio a tipizzazione libera, il che significa che una variabile non è limitata a un solo tipo di dato. Ciò significa che è possibile passare una variabile tra tutti i tipi di dati disponibili senza dover fare nulla. Questa operazione viene anche chiamata type juggling.

Tuttavia, va notato che il cambio di tipo è costoso in termini di risorse e può introdurre potenziali punti di errore logico nei vostri script. Pertanto, dovreste sempre cercare di mantenere le vostre variabili limitate a un solo tipo di dati, se possibile.

Tipo di dato bool

Bool è l'abbreviazione di Boolean. È il tipo di dati più piccolo, in quanto un booleano può avere solo due valori: true o false.

<?php
$new_items = true; // Ci sono nuovi prodotti disponibili
$has_permission = false; // Peccato che non si abbia il permesso di leggerli!

Nota: null, true e false sono parole riservate che non dovrebbero essere usate in un'assegnazione di variabile con apostrofi, se si vuole mantenere la loro funzionalità. Si veda il blocco di codice sottostante per un chiarimento.

<?php
$new_items = true;
// Questo non è un booleano! È una stringa.
$has_permission = 'false';
// La variabile $new_items non esiste più.
$new_items = null;
// La variabile $has_permission esiste ancora, solo il valore è stato cambiato da "false" al valore stringa di "null".
$has_permission = 'null';

Informazioni su var_dump()

È ora di parlare un attimo della funzione PHP var_dump(), che vi aiuterà molto nel debugging. Questa funzione mostra i dettagli delle variabili, compreso il loro contenuto, ma ricordate che var_dump() è una funzione che accetta qualsiasi espressione.

Dopo aver elaborato le espressioni, il risultato e ulteriori informazioni sul risultato verranno stampati sullo schermo.

Per mantenere l’output leggibile, è una buona pratica racchiudere sempre una chiamata a var_dump() tra il tag HTML <pre>. Non è necessario, ma migliora la leggibilità dell'output.

<?php
echo '<pre>';
$new_items = true;
$has_permission = 'false';
var_dump($new_items, $has_permission);
echo '</pre>';