Prima di incominciare a parlare di strutture di controllo voglio chiarire una piccola cosa riguardante le variabili, quello che in gergo è chiamato scope.
Questo fantomatico scope delle variabili altri non è che il contesto in cui la variabile è visibile al programmatore che può quindi leggere e modificare il suo contenuto.
In generale le variabili hanno un solo scope che si espande rendendola visibile in tutto lo script e file inclusi. Sono un’eccezione le funzioni.
Le variabili definite all’esterno di una funzione non sono viste al suo interno e tutte le variabili definite al suo interno muoiono quando questa termina.
Esistono modi piú o meno avanzati per modificare il comportamento del PHP nei confronti delle variabili ma ne parlerò piú avanti.
<?php /* definisce la variabile $k */ $k = 1000.27; echo $k; // stampa il valore di $k function stampa_k () { echo $k; // non stampa niente. $z = 9; echo $z; // stampa $z } stampa_k (); ?>
In C era possibile, tramite le parentesi graffe, creare nuovi blocchi di istruzioni con scope diverso, ridefinire nuovamente una variabile e utilizzarla senza che quella precedente venisse modificata.
Questo giochino in PHP non è possibile visto che lo scope viene propagato anche dentro a blocchi piú interni e varie strutture di controllo.
<?php $a = '1'; { echo $a; // stampa 1 { $a = 7; // ora $a vale 7 } } echo $a; // stampa 7 ?>
vicius
Commenti recenti