Ir al contenido principal

Variables en php

 A veces es conveniente tener nombres de variables variables. Dicho de otro modo, son nombres de variables que se pueden definir y usar dinámicamente. Una variable normal se establece con una sentencia como:

<?php
$a 
'hola';
?>

Una variable variable toma el valor de una variable y lo trata como el nombre de una variable. En el ejemplo anterior, hola, se puede usar como el nombre de una variable utilizando dos signos de dólar. Es decir:

<?php
$$a 'mundo';
?>

En este momento se han definido y almacenado dos variables en el árbol de símbolos de PHP: $a, que contiene "hola", y $hola, que contiene "mundo". Es más, esta sentencia:

<?php
echo "$a ${$a}";
?>

produce el mismo resultado que:

<?php
echo "$a $hola";
?>

esto quiere decir que ambas producen el resultado: hola mundo.

Para usar variables variables con arrays hay que resolver un problema de ambigüedad. Si se escribe $$a[1], el intérprete necesita saber si nos referimos a utilizar $a[1] como una variable, o si se pretendía utilizar $$a como variable y el índice [1] como índice de dicha variable. La sintaxis para resolver esta ambigüedad es: ${$a[1]} para el primer caso y ${$a}[1] para el segundo.

También se puede acceder a las propiedades de una clase usando el nombre de propiedad variable. Este será resuelto dentro del ámbito del cual se hizo la llamada. Por ejemplo, en la expresión $foo->$bar, se buscará $bar en el ámibto local y se empleará su valor será como el nombre de la propiedad de $foo. Esto también es cierto si $bar es un acceso a un array.

Precaución

Además, derreferenciar una propiedad variable que es un array tiene diferente semántica entre PHP 5 y PHP 7. La guías de migración de PHP 7.0 incluye más detalles sobre los tipos de expresiones que han cambiado, y cómo colocar llaves para evitar ambigüedades.

También se pueden usar llaves para delimitar de forma clara el nombre de la propiedad. Son muy útila al acceder a valores dentro una propiedad que contiene un array, cuando el nombre de la propiedad está compuesto de múltiples partes, o cuando el nombre de la propiedad contiene caracteres que de otro modo no son válidos (p.ej. desde json_decode() o SimpleXML).

Ejemplo #1 Ejemplo de propiedad variable

<?php
class foo {
    var 
$bar 'Soy bar.';
    var 
$arr = array('Soy A.''Soy B.''Soy C.');
    var 
$r   'Soy r.';
}

$foo = new foo();
$bar 'bar';
$baz = array('foo''bar''baz''quux');
echo 
$foo->$bar "\n";
echo 
$foo->{$baz[1]} . "\n";

$start 'b';
$end   'ar';
echo 
$foo->{$start $end} . "\n";

$arr 'arr';
echo 
$foo->$arr[1] . "\n";
echo 
$foo->{$arr[1]} . "\n";

?>

El resultado del ejemplo sería:


Soy bar.
Soy bar.
Soy bar.
Soy r.

Comentarios

Entradas populares de este blog

Hacia la sociedad actual

  Realiza la lectura de la pagina 11 del material "La sociedad del conocimiento"  junto con el análisis del video. Responde a las siguientes cuestiones sobre el texto: a) ¿Qué otras consecuencias sociales conoces? b) Volara en qué medida te afecta cada consecuencia. Deja tu comentario colocando su nombre al inicio para anotar tu participación. 

Practica tablas

  Paso 1. Para comenzar la actividad: La práctica se realizará en la carpeta de Mis documentos o documentos, en ésta deberás de crear una carpeta titulada “ProcesadorTexto”. Descarga la  carpeta comprimida  que contiene los siguientes archivos y guarda cada uno en la carpeta que creaste en el punto 1:    Enfoques didácticos.jpg     Logo_UNESCO.jpg     Marcos_Docentes_UNESCO.txt    TIC en el aula.jpg     UNESCOEstandaresDocentes.jpg              V iñeta.png Como se muestra en la siguiente imagen: Si tienes alguna duda sobre cómo bajar y organizar archivos en tu computadora, revisa el tutorial de  "Exploración de archivos en Windows 7" . 1 Paso 2. Crear y guardar un nuevo documento:  Abrir el programa Word. Revisa los siguientes tutoriales sobre cómo crear un documento nuevo en Word, dando clic en las, siguientes ligas  "Mi primer documento" 1  y  “Cr...