Iniziamo oggi lultima puntata del corso avente come argomento
i tipi di dato. Vedremo infatti come è possibile giocare in PHP
con i tipi di dati per manipolarli a nostro piacimento.
PHP non richiede, o non supporta (è una questione di punti di vista),
una esplicita definizione del tipo di una variabile al momento della
sua dichiarazione o del suo uso. Il tipo di una variabile è, quindi,
determinato dal contesto in cui essa viene utilizzata. Ciò equivale
a dire che se noi assegniamo una stringa ad una variabile $miavariabile,
essa diventerà di tipo stringa; se alla stessa assegnassimo un array,
essa assumerà i caratteri di un array in modo automatico e disinvolto.
Di seguito forniamo un paradigmatico esempio di conversione automatica
di tipo:
<html>
<head>
<title>Conversione di tipi</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<?php
$miavariabile="0"; //stringa 0 (codice
ASCII 48)
echo "<p>".$miavariabile."</p>\n";
$miavariabile++; //stringa 1 (codice ASCII
49)
echo "<p>".$miavariabile."</p>\n";
$miavariabile+=10; //intero
echo "<p>".$miavariabile."</p>\n";
$miavariabile+=5.5; //double
echo "<p>".$miavariabile."</p>\n";
$miavariabile=3 + "2 pere"; //intero
echo "<p>".$miavariabile."</p>\n";
$miavariabile=4 + "6 mele"; //intero
echo "<p>".$miavariabile."</p>\n";
?>
<p> </p>
</body>
</html>
In questo codice la variabile $miavariabile cambia tipo
diventando, di volta in volta, stringa, intero, double, e quindi
nuovamente intero. Notiamo che nellesempio precedente non
viene mai cambiato il tipo degli operandi, ma cambia il modo con
cui essi vengono valutati.
È possibile forzare PHP affinché valuti una variabile come se fosse
di un certo tipo. Un operazione di tal genere prende il nome di
cast. Il cast si effettua anteponendo alla variabile il tipo
che vogliamo ottenere racchiuso tra parentesi tonde; per esempio:
$a = 1; //$a è un intero e assume
il valore 1
$b = (double) $a; //$b è un double e assume il valore 1
I cast permessi sono:
(int), (integer) per il cast ad interi
(real), (double), (float) per il cast a double
(string) per il cast a stringhe
(array) per il cast ad array
(object) per il cast ad oggetti
Nota: I caratteri di tabulazione e gli spazi sono ammessi
allinterno delle parentesi; essi, tuttavia non hanno effetto
alcuno.
Tramite la funzione settype() è possibile forzare una variabile
a diventare del tipo desiderato. Ne descriviamo di seguito il funzionamento.
Settype()
Setta il tipo di una variabile; ha una sintassi del tipo:
int settype (string $var, string tipo)
Il suo effetto è quello di settare a tipo il tipo della variabile
$var. I possibili valori di tipo sono:
integer;
double;
string;
array;
object.
Settype ritorna true se ha avuto successo, false
altrimenti. Un esempio di utilizzo della funzione settype
potrebbe essere:
settype($miavariabile, "string");
PHP fornisce la possibilità di sapere qual è il tipo di una variabile.
Per far ciò si utilizza la funzione gettype() come di seguito
spiegato.
gettype()
La sua sintassi è:
string gettype ($miavariabile)
Restituisce una stringa contenente il tipo di dato della variabile
$var. I possibili valori ritornati sono:
"boolean"
"integer"
"double"
"string"
"array"
"object"
"resource"
"user function" (solo con PHP 3)
"unknown type"
Segnaliamo inoltre lesistenza di una serie di funzioni il
cui nome risulta autoesplicativo con la promessa di riprenderne
la trattazione nel proseguo del corso.
Tali funzioni risultano di grande utilità per il check del tipo
di dato di una variabile. Ne segue una breve panoramica:
is_bool
is_int
is_integer
is_long
is_double
is_float
is_real
is_numeric
is_string
is_array
is_object
Con lanalisi di questa funzione abbiamo concluso la trattazione
sui tipi di dato di PHP. Usandola insieme alle altre già studiate
abbiamo la possibilità di familiarizzare con interi, stringe, double,
array e oggetti. Dalla prossima lezione ci preoccuperemo invece
di comprendere a fondo luso delle variabili.
Torna all'indice Generale del corso di Corso di PHP di Software Planet