3 de junio de 2014

Uso de variables en PHP

El ámbito de una variable.  El ambito de la variable, básicamente se refiere a la disponibilidad de dicha variable en el contexto  de la aplicación.

En PHP una variable puede ser de nivel local, global o super global.

Variable local

Son aquellas que se definen dentro de una función o método de clase y solo son accesibles desde la función o método que las declaró.

Ejemplo:

function asignaEdad(){ 
  $edad = 18; 
} 
echo $edad;

Este código fallará debido a que la variable solo esta disponible dentro de la función edad().

Los parámetros de una función o método de una clase también son variables locales. Ejemplo:

function verificaEdad($e=18){
   echo $e;       #Esta línea funciona   
} 
echo $e;          #Esta línea falla

Variable global

Estas son variables accesibles desde cualquier parte de la aplicación, independientemente del tipo de estructura de control. Estas variables se definen anteponiendo la palabra reservada ‘global’.

Si la variable global se define dentro de una función o método de clases, es necesario que primero se ejecute la función para que la variable este disponible a nivel global.

Ejemplo:

function asignaEdad(){
    global $edad;
    $edad = 75;
}
echo $edad;     #Esta línea falla, pues aun no se ha llamado a la función.

asignaEdad();
echo $edad;       #Esta linea funciona correctamente por que primero se llamo a la función donde se declara la variable global

Cuando las variables se definen fuera  de una función o método de clase, estará disponible a nivel global sin necesidad de ser declarada como global.

Ejemplo:

/*  Archivo edad.php  */
$edad = 18;
for($i=1; $i<=10; $i++){ 
$edad ++;
}
/* Archivo operaciónes.php  */
require once(“edad.php”);
echo $edad;              //resultado 28

Las variables $edad, $i son globales y el incremento realizado en el ciclo ‘for’ también aplica a nivel global.

Nota: si se desea acceder a las variables $i o $edad, desde una función o método de clase, previamente deberá ser llamada como global.

Variables super globales

Estas variables no son definidas por el programador, sino que vienen incorporadas en el lenguaje PHP y tampoco necesitan ser declaradas como global.

Algunas de estas variables super globales son:

$_POST
$_GET
$_COOKIE
$_SESSION
$_FILES

 

El modo de las variables

Existen en concreto cuatro modos(tipos) básicos de una variable:

  1. Variables (las convencionales)
  2. Variables estáticas
  3. Variables variables
  4. Constantes.

Variables

Almacenan información y esta puede ser modificada en el trayecto de la aplicación; desaparece tras la ejecución del ambito y su valor se restablece en cada llamada.

Ejemplo:

function llamarVariable(){
   $x =1;
   $x++;
   echo $x;
}
llamarVariable();    #resultado 2
llamarVariable();    #resultado 2

Variables estáticas

Son variables que conservan su valor tras la ejecución de la función o método que las declara.

Ejemplo:

function llamarVariable(){
     static $x ;
     $x++;
     echo $x;
}
llamarVariable();    #resultado 1
llamarVariable();    #resultado 2
llamarVariable();    #resultado 3
llamarVariable();    #resultado 4

En cada llama de la función llamarVariable(), la variable NO se reinicia, sino que conserva su ultimo valor.

 

Variables variables

Es como se definen las variables (locales o globales) en tiempo de ejecución; son variables cuyo nombre, se define en tiempo de ejecución dejando disponible una nueva variable.

Ejemplo:

$nombre = ‘Alejandra’;
$$nombre = 20; #Esta variable se llama ‘$Alejandra’
echo $Alejandra;     #Resultado 20;

Constantes

Antes de la versión 5.3 de PHP, las constantes se definían con la palabra reservada ‘define()’. Pero a partir de la versión mencionada, se agrego la definición de constantes de ámbito global mediante ‘const’.

Ejemplos:

Mediante ‘define()’ se puede recibir una expresión como valor:

$edad = 18;
define(‘YEAR’ ,  $edad);
echo YEAR;      #Resultado 18 
define(‘MEDIA,’ $edad / 2);
echo MEDIA;     #Resultado 9

Mediante ‘const’ solo se reciben valores directos, pero no expresiones:

const EDAD = 1;
const YEAR = EDAD;

Tratar de pasar una expresión como valor, causará un error, como son las siguientes líneas de código.

$year = 18;
const YEAR2 = $year;
const EDAD = 5 * 3 / 2;

Deja una Respuesta