Tipi di Dati PHP
Le variabili possono memorizzare diversi tipi di dati, che a loro volta contengono diversi tipi di valori.
I tipi di dati possono essere classificati in 3 categorie:
SCALARI – che fanno riferimento ad un solo valore
string - Stringhe ('Hello… John' )
int - Numeri interi (es. 3456)
float - Numeri con decimali (es. 3456.25 )
bool - Boleani ( restituisce True – False (in presenza di valori negativi)
COMPOSTI – che fanno riferimento a più valori definiti dall’utente
array - Vettore (insieme di valori in una singola variabile)
object – Oggetto ( vedi in seguito )
SPECIALI – che fanno riferimento a più valori
null – Si assegna ad una variabile che non contiene dati. Si può scrivere in maiuscolo o minuscolo. Restituisce il boleano False.
resource - Risorse è una variabile speciale, che contiene un riferimento a una risorsa esterna. Ad esempio ad un file, connessioni al Database etc.
Esempi e dettagli ( data types Scalari)
string - Una stringa è una sequenza di caratteri alfa-numerici.
Viene definita tra apici doppi o singoli. Sempre doppi se contiene una variabile.
int - Un numero intero, positivo o negativo, è composto almeno da una cifra e non ha punti decimali. Se racchiuso tra apici viene considerato come stringa.
float - Un numero, positivo o negativo, che contiene almeno un punto decimale
** var_dump- Questa funzione consente di ottenere il valore ed il tipo di qualsiasi variabile. Nel caso di string anche il numero dei caratteri.
** var_dump((bool) - Inserendo il cast bool ( vedi Typecasting ) la richiesta sarà specifica per i soli valori boleani.
<?php
$x = "Hello… John";
$y = "3456"; // Viene considerato stringa
$z = 3456;
$xy = 125.25;
// Risultati
echo $x; // Hello…John
echo $y; // 3456
echo $z; // 3456
echo $xy; // 125.25
// var_dump**
var_dump ($x); // string(13) "Hello… John"
var_dump ($y); // string(4) "3456"
var_dump ($z); // int(3456)
var_dump ($xy); // float(125.25)
?>
bool - I dati boleani si esprimono con solo due valori: TRUE (1) o FALSE (0) . Sono in genere utilizzati per istruzioni condizionali. Se la condizione è vera, cioè positiva, restituisce TRUE altrimenti FALSE.
<?php
var_dump((bool) ""); // bool(false)
var_dump((bool) "0"); // bool(false)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) "orange"); // bool(true)
var_dump((bool) 2.50); // bool(true)
var_dump((bool) array(25)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)
?>
Esempi e dettagli ( data types Composti)
array - ( detto anche Vettore o Matrice ) è una variabile speciale che contiene diversi valori.
Si può considerare l’ array come una raccolta di dati, una tabella, una mappa, un elenco e molto altro.
I singoli valori possono essere catalogati con metodi diversi:
*Array indicizzati - catalogati con un numero partendo da “[ 0 ]”.
*Array associativi – catalogati con indici tipo stringa
*Array multidimensionali – quando contengono altri array
Array indicizzati
Esempio 1
<?php
$fruit = array("Kiwi", "Melon", "Papaya");
echo "I like $fruit[0], $fruit[1] and $fruit[2]. </br>";
echo "I like $fruit[2].";
?>
Esempio 2
<?php
$fruit[0] = "Kiwi";
$fruit[1] = "Melon";
$fruit[2] = "Papaya";
echo "I like $fruit[0], $fruit[1] and $fruit[2]. </br>";
echo "I like $fruit[2].";
?>
Risultati:
I like Kiwi, Melon and Papaya.
I like Papaya.
Array indicizzati- Scorri e visualizza tutti i valori con foreach
<?php
$fruit[0] = "Kiwi";
$fruit[1] = "Melon";
$fruit[2] = "Papaya";
foreach( $fruit as $value ) {
echo "I like $value <br />";
}
?>
Risultato:
I like Kiwi
I like Melon
I like Papaya
Array associativi
Esempio 1
<?php
$age = array("John"=>"42", "Jane"=>"25", "Bill"=>"40");
echo "Jane is " . $age['Jane'] . " years old.";
?>
Esempio 2
<?php
$age['John'] = "42";
$age['Jane'] = "25";
$age['Bill'] = "40";
echo "Jane is " .$age['Jane']. " years old.";
?>
Risultato:
Jane is 25 years old.
NOTA: l’array associativo deve essere fuori dalle virgolette doppie. Vedi sintassi
Array associativi- Scorri e visualizza tutti i valori con foreach
<?php
$age['John'] = "42";
$age['Jane'] = "25";
$age['Bill'] = "40";
foreach($age as $x => $x_value) {
echo "Name=" . $x . ", Age=" . $x_value;
echo "<br>";
}
?>
Risultato:
Name=John, Age=42
Name=Jane, Age=25
Name=Bill, Age=40
Array multidimensionali
Prendiamo per esempio questa tabella e creiamo un array che contenga tutti questi dati:
Name |
Years |
City |
Country |
Alex |
35 |
London |
England |
Fabio |
28 |
Rome |
Italy |
Pierre |
33 |
Paris |
France |
Esempio 1
<?php
$operator = array (
"Alex" => array (
"years" => 35,
"city" => London,
"country" => England,
),
"Fabio" => array (
"years" => 28,
"city" => Rome,
"country" => Italy,
),
"Pierre" => array (
"years" => 33,
"city" => Paris,
"country" => France,
),
);
print_r($operator);
?>
Esempio 2
<?php
$operator = array (
array("Alex",35,"London","England"),
array("Fabio",28,"Rome","Italy"),
array("Pierre",33,"Paris","France"),
);
echo "Name: ".$operator[0][0].",</br> Years: ".$operator[0][1].",</br> City: ".$operator[0][2].",</br>Country: ".$operator[0][3].".<br>";
print_r($operator);
?>
Risultato esempio 1:
Array ( [Alex] => Array ( [years] => 35 [city] => London [country] => England ) [Fabio] => Array ( [years] => 28 [city] => Rome [country] => Italy ) [Pierre] => Array ( [years] => 33 [city] => Paris [country] => France ) )
Risultato esempio 2:
Name: Alex,
Years: 35,
City: London,
Country: England.
Array ( [0] => Array ( [0] => Alex [1] => 35 [2] => London [3] => England ) [1] => Array ( [0] => Fabio [1] => 28 [2] => Rome [3] => Italy ) [2] => Array ( [0] => Pierre [1] => 33 [2] => Paris [3] => France ) )
Object
In PHP un oggetto, od istanza di classe, viene creato usando lo schema o struttura fornita dalla classe ( class ***) cui appartiene, composta da proprietà ( dati ) e metodi ( funzionalità).
- Le proprietà ( dati o attributi ) delle classi sono variabili che conterranno le informazioni sull’oggetto.
- I metodi delle classi eseguono funzioni da associare all’oggetto.
L’oggetto fà uso di questo schema e inserisce i valori appropriati per descrivere un nuovo elemento.
È quindi un dato od insieme di dati organizzati che memorizzano valori e funzioni secondo lo schema fornito dalla classe , che viene richiamata con la parola chiave new.
Si possono definire diversi oggetti con lo stesso schema di classe, che avranno naturalmente valori diversi.
Creiamo una semplice classe ed un oggetto:
<?php
class House {
// classe vuota
}
$x = new House;
// oggetto che sarà vuoto
?>
Inseriamo metodo e proprietà:
<?php
class House
{
// metodo
function address() {
// proprietà
echo "Roma"; echo "<br>";
echo "via Aurelia";
}
}
$x = new House; // Creato oggetto
$x->address(); // Visualizza proprietà Oggetto
var_dump ($x); // Visualizza i dati dell’oggetto
?>
Risultati:
Roma
via Aurelia
object(House)#1 (0) { }