Corso di PHP

Manipolazione dei tipi di dato

 

Iniziamo oggi l’ultima 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>&nbsp; </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 nell’esempio 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 all’interno 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 l’esistenza 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 l’analisi 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 l’uso delle variabili.

 

Torna all'indice Generale del corso di Corso di PHP di Software Planet