Scope delle variabili

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
 
?>

Inserisci un commento:


Il contenuto di questo campo è tenuto riservato e non verrà reso pubblico.

Condividi

Se ti piace questo articolo, puoi collegarlo al tuo sito copiando il seguente codice HTML nelle tue pagine.

Acquista libri di informatica

Acquista qui il tuo software

Ultimi commenti