Variabili d ambiente (2) Variabili d ambiente. Ambito delle Variabili (2) Ambito delle Variabili

Documenti analoghi
Corso di PHP. Prerequisiti. 2.1 Variabili. Conoscenza HTML Tecnica della programmazione Principi di programmazione web. M. Malatesta 2.

Dichiarazione di variabili

Javascript: il browser

Programmazione web lato client con JavaScript. Marco Camurri 1

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:

Introduzione a JavaScript. Prof. Francesco Accarino IIS Altiero Spinelli via leopardi 132 Sesto San Giovani

IL LINGUAGGIO C TIPI DI DATO

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 5 31/10/2013

Dati due punti sul piano calcolare la loro distanza

Tipi di dato, Alessandra Giordani Lunedì 7 maggio 2011

Javascript: il browser

Primi esempi di programmi. Il tipo int Le variabili Altri tipi interi Operatori di assegnazione

Foglio Elettronico Lezione 1

Gli statement. Gli statement. Gli statement. Gli statement. Gli statement

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Corso di PHP. Prerequisiti. 2.2 Operatori. Conoscenza HTML Tecnica della programmazione Principi di programmazione web. M. Malatesta 2.

#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main()

L AMBIENTE CODE BLOCKS E L IO

Programmazione in Java (I modulo)

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»

Lezione 6 Introduzione al C++ Mauro Piccolo

Il corpo di tutte le funzioni deve essere contenuto tra parentesi graffe

Struttura dei programmi e Variabili

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

IL LINGUAGGIO C TIPI DI DATO

Variabili e tipi di. Alessandra Giordani Lunedì 11 aprile

Gli Operatori. Linguaggio C. Gli Operatori. Esempi sull uso dell Operatore di Assegnamento. L Operatore di Assegnamento

LEZIONE 11 IMPARIAMO A PROGRAMMARE: I DATI E LE VARIABILI Laboratorio di Informatica per l Educazione A. A. 2014/2015

Laboratorio Progettazione Web Le funzioni in PHP. Angelica Lo Duca IIT-CNR 2012/2013

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Variabili e input/ Alessandra Giordani Lunedì 18 marzo

Java e i Tipi di dati primitivi. Parte 3

Un elaboratore è un manipolatore di simboli (segni) intrinsecamente capace di trattare vari. caratteri char caratteri ASCII unsigned char

LINGUAGGI DI PROGRAMMAZIONE!

Tipi di dato e variabili. Walter Didimo

Laboratorio Progettazione Web Il linguaggio PHP Lezione 6. Andrea Marchetti IIT-CNR 2011/2012

Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi

L AMBIENTE CODE BLOCKS E L IO

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione

Web Scripting. PHP (Hypertext Preprocessor) (Apache Web Server) Tecnologie lato Client / Server. L ambiente: Apache. Uno sguardo all installazione

Programmazione in Python. Moreno Marzolla

Installazione di EasyPhp. Avviare EasyPhp. La finestra di amministrazione di EasyPhp

Il linguaggio C. Notate che...

Concetti base programmazione. Antonio Gallo

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Espressioni ed operatori in C

Puntatori in C. Puntatori. Variabili tradizionali Esempio: int a = 5; Proprietà della variabile a: nome: a

Espressioni ed operatori in C

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double

direttive del preprocessore simboli speciali parole chiave identificatori costanti

Parte seconda: espressioni, operandi e operatori.

Verso i puntatori: Cosa è una variabile?

Puntatori. Fondamenti di Programmazione

Corso di JavaScript. Prerequisiti. B1 Tipi di dato e operatori. Concetto di variabile, espressione e tipo di dato

Introduzione al linguaggio C

LINGUAGGI DI PROGRAMMAZIONE

LEZIONE PRECEDENTE. 1 Abilità Informatiche e Telematiche. 03/04/2015 Dott. ssa Carmen De Maio

Il linguaggio PHP. Insegnarvi tutto il PHP? Non esattamente Obiettivo: insegnarvi ad interagire via web con una base dati

IL LINGUAGGIO C Un elaboratore è un manipolatore di simboli (segni) L'architettura fisica di ogni elaboratore è intrinsecamente capace

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Struttura di un programma Java

Tipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola.

Programmazione lato client. JavaScript. Applicazioni di Rete M. Ribaudo - DISI. JavaScript

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Dichiarazioni e tipi predefiniti nel linguaggio C

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe

Cominciamo ad analizzare la rappresentazione delle informazioni... di Cassino. C. De Stefano Corso di Fondamenti di Informatica Università degli Studi

Laboratorio di Informatica

Costanti e Variabili

Fondamenti di Informatica T-1

Tipi di dato primitivi

Fondamenti di Informatica T-1

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Valutazione di espressioni

Laboratorio Progettazione Web Il linguaggio PHP le istruzioni. Andrea Marchetti IIT-CNR 2013/2014

Fondamenti di programmazione parte 2. Elementi di informatica IGLP

Stringhe. Walter Didimo

Elementi di Base. Introduzione a Python.

L assegnamento. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time

JavaScript JavaScript Programmazione lato client JScript JavaScript ECMAScript

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione

Laboratorio di Programmazione Laurea in Bioinformatica

Input/Output di numeri

Corso sul linguaggio Java

Informatica 2 modulo C Massimo Callisto De Donato

Programmazione C. Puntatori Array come puntatori

Fogli Elettronici. Idoneità Informatica Prof. Mauro Gaspari

BASI LINGUAGGIO. Programmazione Web 1

Caratteristiche di un linguaggio ad alto livello

Struttura di un programma C++

Precisazione sui tipi in ANSi C

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Primo esempio di un programma Java

Transcript:

Variabili d ambiente Variabili d ambiente (2)! Sono variabili esistenti al di fuori di script PHP! Sono disponibili in qualsiasi script PHP! Forniscono informazioni sulla transazione Client/Server! Hanno lo stesso formato delle normali variabili! Non richiedono intervento da parte dell utente! Si possono vedere usando la funzione phpinfo()! E possibile fare riferimento alle singole variabili:! echo $HTTP_COOKIE_DATA; //contenuto dei cookies! echo $HTTP_USER_AGENT; //nome browser! Ci sono molte altre variabili d ambiente utili:! $HTTP_FROM; // contiene l indirizzo email dell utente che effettua una richiesta! $HTTP_ACCEPT; // contiene un elenco dei vari tipi di media-contents che l utente è in grado di gestire! E possibile modificare queste variabili! non sono costanti! in generale, però, servono come riferimento PHP - 57 PHP - 58 Ambito delle Variabili Ambito delle Variabili (2)! Qualsiasi variabile che non si trova all interno di una funzione ha ambito globale.! Se si assegna una variabile all inizio di un file PHP, il nome della variabile ha lo stesso significato per tutto il resto del file.! L assegnazione di una variabile non influirà sul valore delle variabili con lo stesso nome in altri file PHP.! Esistono metodi per passare variabili tra un file e l altro! utilizzando GET e POST! utilizzando i cookies! utilizzando un database <HTML><HEAD> php $username= lisa ; // ambito globale </HEAD> <BODY> php print( $username<br> ); // l ambito è sempre lo stesso </BODY></HTML> PHP - 59 PHP - 60

Ambito delle Variabili (3) Tipi di Dati E una regola generale di PHP! L unico effetto dei tag è quello di permettere al motore di php di sapere! Se si vuole che il codice venga interpretato come PHP o che passi per intero come HTML.! Sentitevi liberi di utilizzare i tag per passare da un modo all altro secondo la convenienza! Passando da un modo all altro non si perde in prestazioni! I dati contenuti nelle variabili sono tipati. In particolare, i tipi che PHP può trattare sono:! string! integer! double! array! object! unknown PHP - 61 PHP - 62 Tipi di Dati (2) Tipi di Dati (3)! I tipi dei dati vengono inferiti dal contesto. (dynamic typing) $nome = Lisa ;! Non è necessario dichiarare il tipo di una variabile.! Prima regola: non preoccuparsi. $prezzo = 21.95;! Esistono comunque delle operazioni di casting con cui è possibile convertire un tipo di dato in un altro. echo $nome; echo $prezzo;! In alcuni casi le conversioni sono automatiche. echo $tmp; PHP - 63 PHP - 64

! PHP fa un buon lavoro di conversione automatico! Farà la cosa giusta, eseguendo calcoli con tipi diversi $asse = 8 + 4.523! Sarà un float Conversione di Tipi Automatica! L intero 3 viene convertito, implicitamente, in 3.00 prima dell operazione. Tipi Assegnati per Contesto $asse = substr(12345, 2, 2); print( asse e $sub<br> );! substr prende una stringa e restituisce una sottostringa.! Punto iniziale e lunghezza sono i due parametri successivi.! Nessun Errore se passiamo un intero: 12345! PHP converte l intero in stringa e poi effettua l operazione! PHP - 65 PHP - 66 I Numeri I Numeri (2)! I tipi di dato integer contengono numeri interi.! I tipi di dato double contengono numeri reali a doppia precisione (numeri in virgola mobile).! Numeri privi di virgola vengono automaticamente considerati integer. $Quantita = 15;! Quando nei valori è presente la virgola, i numeri vengono considerati come double.! Stessa cosa per le frazioni. $Costo = 6.73; $Costo = 6/5; PHP - 67 PHP - 68

I Numeri (3) I Numeri (4)! Gli interi possono essere letti in tre formati:! Decimale (base 10) - predefinito! Ottale (base 8) - specificato con uno 0 iniziale! Esadecimale (base 16) - specificato con un 0x iniziale! Il valore di lettura ha effetto solo sulla conversione in fase di lettura!! All interno i numeri sono conservati in formato binario. $int_10 = 1000; $int_8 = 01000; $int_16 = 0x1000; print( int_10: $int_10<br> ); print( int_16: $int_16<br> ); print( int_8: $int_8<br> ); Output: int_10 = 1000; int_16 = 4096; int_8 = 512; PHP - 69 PHP - 70 I Numeri (5) I double sono numeri a virgola mobile: $float1 = 345.67; $float2 = 987,457; $float3 = 3.0; Attenzione! Il fatto che $float3 sia un numero tondo non lo rende un intero! I Numeri (5) Bisogna stare attenti a non confondere! Il punto decimale con! L operatore di concatenazione di stringhe. echo 2. 2; // Ci sono due stringhe 2 echo 2.2; // La stringa è 2.2 PHP - 71 PHP - 72

I Booleani I Booleani (2)! Sono valori TRUE o FALSE! Vengono utilizzati in strutture di controllo (if..then else)! Possono essere combinati usando operatori logici! E una nuova aggiunta di PHP4! PHP3 non aveva tipi booleani distinti! trattava certi valori di altri tipi come veri o falsi (perl) php if(true) print( questo lo stampiamo<br> ); else print( questo, invece, NO!<BR> );! E possibile determinare il vero di ogni valore che non è già un booleano! Se il valore è un numero: è falso se è 0; vero in tutti gli altri casi.! Se il valore è una stringa: è falso se la stringa è vuota o la stringa è 0 ; vero in tutti gli altri casi.! Se il valore è un tipo composto (array): è falso se non contiene altri valori; è vero in tutti gli altri casi. PHP - 73 PHP - 74 I Booleani (3) I Booleani (4) php php if(!$floatval) { $floatval = 1; } else $floatval++; if(!$mystring) { $mystring = Hello, World! ; } else $mystring.= -this chunk was added ; php $floatval = sqrt(2.0) * sqrt(2.0) - 2.0; if($floatval) print( i float come booleani sono pericolosi!<br> ); else print( per questa volta ha funzionato! );! La regola 1, dice che il float 0,0 deve essere convertito in un booleano falso.! E pericoloso utilizzare espressioni a virgola mobile! Possibili errori di arrotondamento! PHP - 75 PHP - 76

! Le stringhe sono il tipo di dato più importante in PHP.! Sono sequenze di caratteri! Le stringhe possono contenere intere frasi e vengono definite utilizzando virgolette doppie o singole. $citta = Catania ; $username = Lisa ; Le Stringhe! Nelle stringhe possono anche essere inseriti i valori delle variabili.! Se si inserisce un nome di variabile in una stringa, questo viene sostituito con il suo valore $Nome = Lisa ; $Saluto = Ciao $Nome! ; echo $Saluto; genera: Ciao Lisa Le Stringhe (2) PHP - 77 PHP - 78! Le stringhe tra virgolette semplici vengono trattate quasi letteralmente.! Le stringhe tra virgolette doppie sostituiscono variabili con i valori associati! Interpretano, inoltre, sequenze particolari di caratteri. $Nome = Lisa ; $Saluto = Ciao $Nome! ; echo $Saluto; Le Stringhe (3)! Le stringhe possono essere concatenate utilizzando il simbolo punto. $Nome = Mario ; $Cognome = Rossi ; $Nome_completo = $Cognome.. $Nome; echo $Nome_completo; genera: Rossi Mario Le Stringhe (4) genera: Ciao $Nome PHP - 79 PHP - 80

Regole di Concatenamento Casting! Se compare un $ in una stringa tra doppi apici! PHP tenta di interpretare il contenuto come variabile! Se la variabile è impostata su un valore stringa, la stringa viene concatenata! Se la variabile è impostata su un valore non stringa, il valore viene convertito in una stringa e quindi concatenato! Se la variabile non è impostata, PHP non concatena niente! È possibile convertire un numero in stringa e viceversa utilizzando una operazione di cast.! Un cast si effettua scrivendo tra parentesi tonde prima della variabile, il tipo in cui si vuole trasformarla: $Anno = Anno. (string)$year; $Quantita = (integer)$qty;! Raramente il casting è necessario. Nella conversione verso numeri può produrre risultati errati. PHP - 81 PHP - 82 Le Costanti Le Costanti (2)! Oltre alle variabili, PHP permette anche di definire delle costanti.! Le costanti si assegnano utilizzando il comando define().! I nomi delle costanti sono generalmente scritti in maiuscolo e non cominciano con il simbolo $.! Il valore delle costanti può essere soltanto letto.! Il valore di una costante non può essere modificato. define( NATALE, 25 dicembre ); echo NATALE; PHP - 83 PHP - 84

Il comando echo Il comando echo! Il comando echo è il comando principale con cui si scrive la pagina HTML generata dallo script PHP.! Esso aggiunge una stringa alla pagina HTML restituita al client.! Nelle pagine HTML ricevute dal client le righe scritte da echo vengono inserite al posto del codice php.! A differenza degli altri comandi, echo non richiede parentesi per specificare i parametri.! Aggiunge alla pagina la stringa specificata subito dopo la parola chiave. echo <HTML><BODY><H1>Titolo dell opera echo </H1></BODY></HTML> ;! E leggermente più efficiente di print() PHP - 85 PHP - 86 Il comando print Gli Operatori! Anche il comando print() stampa una stringa.! print() accetta un solo argomento e restituisce un valore, per informare se l operazione di output ha avuto successo.! E possibile gestire l output di print in maniera personalizzata.! Ci torneremo più avanti nel corso. Gli operatori aritmetici sono gli stessi del C:! somma +! sottrazione! divisione /! moltiplicazione *! modulo % Le parentesi modificano l ordine di precedenza degli operatori (come in C). PHP - 87 PHP - 88

Gli Operatori (2) Gli Operatori (3) $numero = 1; $numero = $numero + 1; Versione prefissa (prima l incremento, poi l assegnamento: è equivalente a $risultato = ++$numero; ++$numero; $risultato! 2 $numero! 2 Come in C esistono anche: Versione postfissa (prima l assegnamento, poi l incremento): ++$var, $var++ $risultato = $numero++; --$var, $var-- $risultato! 1 $numero! 2 PHP - 89 PHP - 90! Utilizzare variabili temporanee è una pessima abitudine.! L uso di variabili temporanee rallenta l esecuzione.! Il tempo può incrementare del 20% / 25%! La presenza di troppe variabili temporanee può ridurre la visibilità del codice. $tmp = date( r ); echo $tmp; Ottimizzare il codice echo date( r ); Ottimizzare il codice (2)! Se il valore contenuto / utilizzato è richiesto più volte! L uso delle variabili temporanee diventa obbligo! for($i=0; $i<count($myarray); $i++) echo $myarray[$i]; for($i=0, $tmp=count($myarray); $i<$tmp; $i++) echo $myarray[$i]; PHP - 91 PHP - 92

$i = 5; $j = &$i; echo i:. $I. \n ; echo j:. $j. \n ; Ottimizzare il codice (3)! $j è un alias per $i.! PHP4 la vede come la stessa variabile (passaggio per referenza)! Se cambiamo Il valore di $i o $j, l altra avrà lo stesso valore.! Puntano alla stessa zona di memoria.! I puntatori esistono anche in PHP!! Ottimizzare il codice (4)! In PHP4, esiste il Reference Counting! permette di eliminare allocazione di nuova memoria inutile. $i = 5; //RC[5]=1 $j = $i; //RC[5]=2 1 $i = 5; //RC[5]=1 $j = $i; //RC[5]=2 $j = 7; //RC[5]=1 && RC[7]=1 $j = 7; //RC[5]=1 && RC[7]=1 $I = $j; //RC[5]=0 && RC[7]=2 3 2 PHP - 93 PHP - 94 Ottimizzare il codice (5)! Fino a quando non si cambia il valore della variabile! Il passaggio per valore permette di sfruttare l RC! performance++! Per decidere se usare passaggio per valore o riferimento:! Gli oggetti dovrebbero essere passati per riferimento.! Ogni altra cosa, inclusi gli array, per valore. PHP - 95