Corso di PHP 2.1 Variabili 1 Prerequisiti Conoscenza HTML Tecnica della programmazione Principi di programmazione web 2 1
Introduzione In questa Unità illustriamo più in particolare gli strumenti di base della programmazione come, cioè le variabili, le costanti e le espressioni, descrivendo anche i tipi di dato che PHP fornisce. 3 Variabili Una variabile è caratterizzate da un nome, da un tipo e da un contenuto. Per il nome valgono le seguenti caratteristiche: deve iniziare con il simbolo $ ; es. $base può contenere lettere, numeri ed il trattino di sottolineatura, o underscore (_); il primo carattere del nome (dopo il $ ) può essere una lettera o il _ ; è case sensitive, ossia dipendente dal tipo di carattere (maiuscolo o minuscolo), per cui le variabili $base, $base. $Base e $BaSE sono considerate tutte diverse 4 2
Variabili Le variabili in PHP non necessitano di essere dichiarate, per cui il tipo della variabile è definito al momento della assegnazione. Esempi: $base = 3; $base = 1.5; // variabile intera // ora la variabile è divenuta reale 5 Variabili Occorre tuttavia ricordare che una variabile, per poter essere usata (stampata, elaborata) deve essere istanziata, ossia deve essere stata inizializzata, altrimenti l interprete darà errore in esecuzione. <HTML> <HEAD><TITLE>Utente Mauro Malatesta</TITLE> </HEAD> <BODY> La variabile non e' istanziata echo $miavar; $miavar="ciao!"; echo "<br>la variabile $miavar ora e' istanziata "; </BODY> </HTML> 6 3
Variabili Esiste un utile funzione predefinita per controllare se una variabile è stata istanziata: boolean isset (variabile) //$var='a'; if (isset ($var)) echo "variabile istanziata"; else echo ("variabile non istanziata"); 7 Costanti Vediamo un esempio di uso di una costante Dichiarazione di una costante define("tasso_lira_euro", 1936.27); echo TASSO_LIRA_EURO; In generale una costante si definisce con: define ( nome_costante, valore); 8 4
Il PHP offre i seguenti tipi di dato: logico intero reale carattere stringa oggetto 9 Inoltre, occorre ricordare che: il PHP, a differenza di altri linguaggi, associa il tipo di dato al valore e non alla variabile. Esempio: $v = 5; // v è intera $v = ciao ; // ora divenuta stringa effettua conversioni automatiche dei valori nel momento in cui siano richiesti tipi di dato differenti (ad esempio in un espressione, come vedremo tra breve) 10 5
- logico Il tipo logico o booleano serve ad indicare i valori vero o falso all interno di espressioni logiche. Il tipo booleano: prevede le due costanti true e false; è associato al risultato di un espressione booleana Esempio: $vero = true; $falso = false; 11 - logico Il valore logico false è associato al valore 0, mentre true è associato ad un valore diverso da 0. Sono considerati false: Esempi: un intero contenente 0 <! ValoriLogici.php --> Stampa 1 inteso come un reale contenente 0.0 true $a=1; una stringa vuota $b=5; un array vuoto $d=($a<$b); il valore NULL echo "$a<$b=".$d; echo " is_bool (1<5) =". is_bool($d); La funzione is_bool (ident) rstituisce true o false a seconda che l argomento sia booleano o no. 12 6
- intero Il tipo intero prevede i valori interi positivi e negativi. $int1 = 12; $int2 = -7; echo $int1 * $int2 // stampa -84 gli interi vanno da -2 31 (2147483647) a 2 31-1 (2147483648) se un intero supera il valore massimo, viene automaticamente convertito in reale (conversione implicita o cast implicito) 13 - intero <! intero.php --> $n = 2147483647; echo gettype ($n)."<br>"; $n = 2147483648; echo gettype ($n)."<br>"; Esempi di conversione implicita: $esito = true; $stato = false; La funzione gettype (ident) stampa il nome del tipo della variabile ident. // $esito è booleana e vale true // $stato è booleana e vale false $conta=100; // $conta è intera e vale 100 $conta=$esito; // $conta vale 1 $conta=$stato; // $conta vale 0 14 7
- intero La funzione intval (ident) restituisce la conversione intera del valore presente nella variabile ident (conversione $n=3; esplicita o cast esplicito). Si indica anche con (int) o (string) o (float) a seconda del tipo di destinazione $m = 32.5; echo "$n=3, gettype($n)=".gettype($n)."\n"; echo "intval ($m)=".intval($m); Esempi di conversione esplicita: $c=10.5; // $c è reale e vale 10.5 $c_int= intval ($c) // $c_int è intera e riceve 10 $c_int= esito 15 ; // $c_int dventa stringa $c_int=15.3; // $c_int diventa reale e vale 15.3 $c=(int) $c_int; // $c diventa intera e vale 15 15 - reale Il tipo reale, detto double o float, prevede un massimo di circa 1.8e 308 con una precisione di 14 cifre decimali. Esempi: $vm1 = 1.251; // 1,251 $vm2 = 4.2e4; // 4,2 * 10^4, cioè 42000 $vm3 = 1.3E-2; // 1,3 * 10^-2, cioè 0,013 16 8
- reale Anche sul tipo reale si possono fare diverse conversioni. Esempi: $n=5; // $n è intera e vale 5 $n=1 + 1.5 ; // $n diventa reale e vale 2.5 $n= esito + 1 ; // $n diventa stringa e contiene esito 17 - carattere Un carattere è un singolo elemento del codice ASCII.. I caratteri costanti si indicano tra apici (' e '). Esempio: $carattere = 'C ; I caratteri sono sempre delimitati da apici Sui caratteri esistono le seguenti funzioni predefinite: ord (carattere) restituisce il codice ASCII del carattere; chr (numero) restituisce il carattere avente numero come codice ASCII 18 9
- carattere $a = ord('a'); // converte in ASCII echo "ord('a') = ".$a."<br>"; echo $a."+1=66<br>"; $a = $a+1; echo "chr(".$a.")=".chr($a); // converte in carattere Le funzioni ord () e chr () sono una l inversa dell altra. 19 Una stringa è una qualsiasi sequenza di caratteri. Le stringhe costanti si indicano nelle virgolette (" e ") o tra apici (' e '). Esempio: $frase = 'Ciao mondo! ' Le stringhe delimitate da apici sono la forma più semplice $parola= ' Il romanzo "I promessi sposi" è di Alessandro Manzoni' Le virgolette sono indicate quando nella stringa compaiono nomi di variabili o altre stringhe. 20 10
Le stringhe possono essere concatenate mediante il simbolo.. Esempio: $s1 = Ciao ; $s2 = mondo! ; $s3 = $s1.$s2 echo $s3; // stampa Ciao mondo! 21 Un particolare concetto sono le variabili di variabili, mostrato in questo esempio: $nome = Rossi ; echo $nome, "<BR>"; // stampa Rossi $t="nome"; // in t pone nome echo $t; // stampa nome echo $$t // stampa Rossi 22 11
L interprete PHP è in grado di riconoscere se in una stringa sono presenti caratteri di escape, indicati in tabella. Carattere di escape \n \t \b \r \$ \ \ \_ Effetto A capo Tabulazione orizzontale Una battuta indietro Ritorno a capo sulla stessa riga Carattere $ Doppio apice Apice Simbolo dell euro 23 È possibile concatenare due o più stringhe mediante il simbolo punto. Esempio: $s1 = cassa ; $s2 = forte ; echo $1.$2; // stampa cassaforte 24 12
È possibile individuare all interno di una stringa, il carattere che occupa una data posizione mediante le parentesi graffe { e }. <! stringhe.php --> Notare l uso delle graffe per individuare un $a="cass"; carattere interno $n=120; echo $a."a"; echo "<BR>Il carattere in posizione 3 è ".$a{2}; echo "<BR>La stringa $a è lunga ".strlen ($a); echo "<BR>".strval ($n); La funzione strval (ident) trasforma il dato ident in stringa. La funzione strlen (ident) restituisce la lunghezza della stringa ident 25 $num = 25; $str_num = "$num"; $str = (string) $num; echo "(\$str= =\$str_num) vale ".($ft == $s) Il programma stampa ($ft= =$s) vale 1 grazie al cast esplicito di $num da intero a stringa. 26 13
La l:ibreria sulle stringhe di PHP è molto ricca e ne mostriamo solo alcuni esempi. 27 28 14
Argomenti Variabili Costanti logico intero reale carattere stringa 29 Altri testi di riferimento P.Camagni, R.Nicolassy PHP ed. HOEPLI Informatica http://www.phpnews.it/corsi/corso-php-base/ 30 15