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