Il linguaggio PHP

Transcript

Il linguaggio PHP
Il linguaggio PHP
Modello di Memoria
Scope delle variabili e passaggio dei parametri
Tutorial W3C Schools (continua)
ASD-L - Luca Tesei
1
Modello di Memoria per PHP
Heap
Ambiente Globale
$x 51
$y
Array Associat. $GLOBALS
ASD-L - Luca Tesei
Oggetti, Array
2
Modello di Memoria per PHP
Heap
Ambiente Locale fun1()
Non
Visible
$x
3
$z
0
Ambiente Globale
$x 51
$y
Array Associat. $GLOBALS
ASD-L - Luca Tesei
Oggetti, Array
3
Modello di Memoria per PHP
Ambiente Locale fun2()
global $x
$w
2
Rende
Visibile
Heap
Non Ambiente Locale fun1()
3
Visible $x
$z
Non
Visible
0
Ambiente Globale
$x 51
$y
Array Associat. $GLOBALS
ASD-L - Luca Tesei
Oggetti, Array
4
Modello di Memoria per PHP
Heap
Ambiente Locale fun1()
Non
Visible
$x
3
$z
0
Ambiente Globale
$x 51
$y
Array Associat. $GLOBALS
ASD-L - Luca Tesei
Oggetti, Array
5
Modello di Memoria per PHP
Heap
Ambiente Globale
$x 51
$y
Array Associat. $GLOBALS
ASD-L - Luca Tesei
Oggetti, Array
6
Scope delle variabili
●
●
●
●
Le variabili locali sono visibili solo dentro la
funzione in cui sono dichiarate
Le variabili globali sono visibili al di fuori delle
funzioni
Le variabili globali sono accessibili da dentro le
funzioni tramite l'array $GLOBALS
Le variabili globali sono accessibili e dichiarabili
dentro le funzioni tramite lo specificatore
global
ASD-L - Luca Tesei
7
Ciclo di vita delle variabili
●
●
●
●
Le variabili globali appaiono nell'ambiente
globale quando vengono usate la prima volta
Esse persistono fino alla chiusura della pagina
web nel browser
Le variabili locali appaiono nell'ambiente locale
della funzione che le dichiara e persistono fino
al ritorno della funzione
Il valore delle variabili locali static permane
da una chiamata della stessa funzione all'altra
ASD-L - Luca Tesei
8
Passaggio dei parametri
●
I parametri di tutti i tipi tranne Object:
–
●
●
●
●
String, Integer, Float, Boolean, Array
Normalmente sono passati per valore
I parametri di tipo Object vengono passati
sempre per valore ma, come accade in Java,
tale valore è un riferimento!
Quindi la funzione può modificare gli oggetti
passati come parametri
Vedi codice allegato phpvars.php
ASD-L - Luca Tesei
9
Passaggio dei Parametri
●
E’ possibile il passaggio di parametri per
riferimento, ottenuto come segue
function inc(
&$i
$i = $i + 1;
) {
}
…
$x = 3;
inc($x);
// qui x vale 4
ASD-L - Luca Tesei
10
W3C Schools PHP Tutorial
●
PHP Syntax
●
PHP Variables
●
PHP Echo / Print
●
PHP Data Types
●
PHP Strings
●
PHP Constants
●
PHP Operators
●
PHP If...Else...Elseif
ASD-L - Luca Tesei
11
W3C Schools PHP Tutorial
●
PHP Switch
●
PHP While Loops
●
PHP For Loops
●
PHP Functions
●
PHP Arrays
●
PHP Sorting Arrays
●
PHP Superglobals
ASD-L - Luca Tesei
12