15, octubre - 2018

Variables, constantes y matrices

Variables, constantes y matrices

Comenzamos las lecciones sobre php por una de las cosas más básicas, hablando sobre lo que son y el funcionamiento de las variables, las constantes y los arrays o arreglos de la programación en PHP.
Decimos lo mas básico porque esto seria lo primero que debemos aprender si queremos posteriormente trabajar y programar con este lenguaje.
Sin mas preámbulos comencemos…

¿Qué son las variables en PHP?

Las variables en programación son cadenas de texto alfanuméricas las cuales pueden almacenar información para posteriormente ser utilizada, en PHP son variables del tipo cualitativo, lo que significa que pueden almacenar distintos valores e ir cambiando éstos a medida que se van declarando cambios, también que no hace falta declarar el tipo de valor que se va a guardar en ella antes como sucede en otros lenguajes de programación como por ejemplo C+, en PHP el propio sistema se encarga de detectar el tipo de variable (íntegro, string, booleano, etc…) y de adecuar la variable al tipo de valor que va a almacenar.

En PHP las variables se representan con un signo de dólar seguido por el nombre de la variable. El nombre de la variable es sensible a minúsculas y mayúsculas (case sentitive), lo que querrá decir que Uno y uno serán variables diferentes. Vemos un ejemplo:

$Uno = "uno";
$uno = "otro distinto...";
echo $Uno; //Devolverá la cadena de texto 'uno'
echo $uno; //Devolverá la cadena de texto 'otro distinto...'

Para que una variable sea válida y no genere un error de programación, ésta deberá comenzar con una letra o un carácter de subrayado, seguido a su vez, de un letras, números o caracteres de subrayado, si comenzamos una variable con un número por ejemplo $5am generará un error, igual que si comenzamos con un carácter especial por ejemplo $%variable, igual generará un error de programación y en algunos casos detendrá el script de programación. Podríamos determinar como expresión regular la siguiente: ‘[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

Por último un apunte, en programación a una variable se la suele llamar habitualmente también con el nombre de identificador, es posible que lo empleemos más adelante, de esa forma, un identificador y una variable será lo mismo.

¿Qué tipos de valores se pueden almacenar dentro de las variables?

PHP admite los siguientes tipos de datos para identificadores:

  • Números enteros: utilizado para representar números enteros, positivos y negativos
  • Números de coma flotante o doble: utilizado para representar números reales con decimales
  • Cadenas: utilizadas para representar cadenas de texto y carácteres
  • Booleanos: utilizados para representar valores verdaderos o falsos
  • Matrices: utilizados para conjuntos de datos del mismo tipo
  • Objetos: utilizados para almacenar y representar instancias de clases (programación dinámica avanzada)

Existiría otro tipo de datos denominados NULL que se asignarán cuando a una variable no se le haya dado ningún valor, no están definidas o directamente se les ha asignado el valor NULL serán de tipo NULO.
Y para terminar estarían las variables de tipo variable, que se utilizan para cambiar el nombre de una variable de forma dinámica, PHP es uno de los lenguajes de programación más versátiles que existen, prueba de ello es esta, en casi ningún lenguaje de programación podemos cambiar el tipo de dato de una variable mientras se está ejecutando un script y mucho menos cambiar el nombre de la propia variable, con PHP esto sí se puede hacer.
Su funcionamiento consiste en cambiar el nombre de una variable por el valor de otra, lo cierto es que se utiliza en pocas ocasiones, pero si es necesario ahí lo tenemos a nuestra disposición, veamos un ejemplo:

$uno = "uno";
$$uno = "dos";
echo $dos; //nos devolverá el valor "uno" o lo que es igual hemos cambiado el nombre de la variable $uno a $dos

La verdad es que este tipo de sentencias son extrañas y difíciles de utilizar, por eso no se recomiendan a no ser que sea de extrema necesidad.

Declaraciones poco comunes de variables

Vamos a ver una serie de declaraciones de variables poco comunes que seguro nos serán de gran ayuda a la hora de programar nuestros códigos en PHP.

Declaración dinámica de variables

$partevariable = "unida";
${"_partefija".$partevariable} = "variable total";
echo $_partefijaunida; //nos devolverá la cadena "variable total"

Declaración de una variable concatenada

$variable1 = "uno";
$variable2 = "dos";
${$variable1.$variable2} = "tres";
echo $variable1; //devolverá 'uno'
echo $variable2; //devolverá 'dos';
echo $unodos; //devolverá el resultado de la concatenación 'tres'
echo ${$variable1.$variable2}; //igual devolverá la concatenación 'tres'

Declaración de una variable de tipo variable

$variable = 'valor de variable';
${'valor de variable'} = 'resultado valor de variable';
echo $variable; //nos devuelve el resultado 'valor de variable'
var_dump($$variable); //nos devuelve como resultado la segunda declaración 'resultado valor de variable'

De esa forma si queremos usar como variable la primera declaración pondremos un solo signo de dollar, y si queremos usar como variable su resultado pondremos dos signos de dollar en el comienzo. Como ya hemos dicho algo confuso y poco habitual.

¿Qué son las constantes?

Las constantes a diferencia que ocurría con las variables no podrán cambiar ni su nombre ni su valor a lo largo de la ejecución del script de PHP. Una constante se establecerá una vez y no puede cambiar en ningún otro punto de la secuencia de líneas de comando.
Por norma general, las constantes son utilizadas para trabajar con datos a nivel interno de la aplicación, no para que puedan ser dinámicas ni generadas por los usuarios de las mismas.

Para declarar una constante tenemos que utilizar la función predefinida ‘define’ como mostramos a continuación

define("NombreConstante","Valor de constante"); //Creamos la constante NombreConstante con el valor 'valor de constante'

Otra norma que se suele emplear en el uso y declaración de constantes será la de declarar estas en mayúsculas o capitalizadas como hemos hecho nosotros en el ejemplo, esto aunque no es obligatorio es recomendable ya que facilita la posterior lectura de ellas y evita que cometamos posibles errores.
Las constantes tendrán las mismas normas que las variables en cuanto a permisiones, no podrán comenzar por número ni signos que no sean el guión bajo, podrán almacenar valores alfanuméricos, enteros y flotantes y booleanos, matrices no.

Una diferencia a tener en cuenta entre las variables y las constantes, será la de que a la hora de llamar a las constantes, la llamada comenzará directamente por el nombre de la constante y no por el signo de dolar, de tal modo que siguiendo el ejemplo anterior, para imprimir el valor de nuestra constante en pantalla lo haríamos de la siguiente manera:

define("NombreConstante","Valor de constante"); //Creamos la constante NombreConstante con el valor 'valor de constante'
echo NombreConstante; //que devolverá como resultado el string "Valor de constante" en pantalla

Además de las constantes que definamos o no en nuestros scripts de programación, PHP trae un gran número de constantes predefinidas en el sistema que podremos utilizar en caso de necesitarlo, para poder ver qué constantes son estas podemos utilizar la función phpinfo(); en cualquier página .php y ejecutarla en el navegador para ver las variables y constantes que tenemos ya predefinidas además de otra serie de datos que nos serán de gran ayuda en nuestras programaciones y que iremos comentando poco a poco en este site.

Ámbito de los identificadores

Vamos a ver las 6 reglas que se aplican a los ámbitos de identificadores (variables y constantes) en el lenguaje PHP:

  • Las variables gobales y superglobales resultan siempre visibles dentro de una sentencia de comandos
  • Las constantes una vez estén declaradas resultarán visibles de forma global y podrán utilizarse tanto en las secuencias de comandos como en el interior de las funciones sin necesidad de pasarlas como parámetros de la función
  • Las variables globales se podrán usar en toda la sentencia de comandos pero no en el interior de las funciones a no ser que sean superglobales o que se pasen a la función como parámetros de la función
  • Las variables superglobales que se utilicen en el interior de una función harán referencia a la misma variable global usada o declarada en la secuencia de comandos
  • Las variables declaradas dentro de una función como estáticas son invisibles desde el exterior de las funciones pero conservarán su valor en todas las ejecuciones de ésta
  • Las variables creadas dentro de una función dejan de existir cuando la función desaparece

Matrices ¿Qué tipo de variables son?

Para finalizar están las matrices de datos. Una matriz o array en PHP es una variable que en su interior contiene un conjunto de datos en lugar de un solo dato como contenían las variables y las constantes. Para declarar una matriz lo haremos declarando primero la variable e indicando que ésta ha de contener en su interior el conjunto de datos, éste comenzará por la palabra array seguida de la lista de valores encerrados entre paréntesis, comillas (en el caso de valores literales), y comas para separar los valores. Como vemos a continuación:

$matriz = array("Jose", "Ramón", 2);
echo $matriz[0]; //nos devolverá como resultado el índice primero de la matriz, en este caso el nombre "Jose"
echo $matriz[1]; //nos devolverá como resultado el índice primero de la matriz, en este caso el nombre "Ramón"
echo $matriz[2]; //nos devolverá como resultado el índice primero de la matriz, en este caso un dígito, el número 2
$matriz[3] = "Mas valores";
echo $matriz[3]; //devolverá el nuevo valor "Mas valores"

Como se puede ver, el índice de la matriz comienza por el valor 0, no por el 1, pudiendo contener en su interior el número de elementos que deseemos.

PHP permite declarar también las denominadas matrices asociativas, éstas en lugar de tener un índice numérico, tienen un índice asociativo declarado por cadenas de texto, podemos ver el siguiente ejemplo de matriz asociativa;

$matriz = array("Nombre" => "Jose", "Ciudad" => "Roma", "Telefono" => 666996699);
echo $matriz["Nombre"]; //devolverá como resultado el indice 0 de la matriz, en este caso el nombre "Jose"
echo $matriz["Ciudad"]; //devolverá el índice de la matriz 1, "Roma"
echo $matriz["Telefono"]; //devolverá el tercer índice que como comienzan por cero será el número 2, y el resultado será un entero con el número de teléfono
$matriz["Pais"] = "Italia"; //devolverá el nuevo valor, en este caso el país Italia

Si queremos almacenar un gran número de datos podemos utilizar bucles de programación (que veremos más adelante) o rangos de valores, por ejemplo, imaginemos que queremos almacenar en una matriz los números enteros del 1 al 100, lo podemos hacer usando la función predefinida en PHP range();

$matriz = range(1, 100); // que almacenará todos los números enteros del 1 al 100
echo $matriz[49]; //devolverá el valor 50

Nota: el rango de matrices range() también puede utilizarse con rangos numéricos como por ejemplo range(‘a’,’z’) que devolverá las letras del abecedario, y tiene un tercer parámetro para indicar los puntos de corte del rango, por ejemplo range(0,100,2) nos devolverá los números pares del 1 al 100, range(1,100,2) que devolverá los números impares

Las matrices multidimensionales

Otro elemento que se suele utilizar mucho son las matrices multidimensionales, éstas pueden contener valores de más de una dimensión, o lo que es lo mismo, rangos de valores en el interior de uno de los rangos de valor, para que se entienda más fácilmente podemos ver el siguiente gráfico y ejemplo:

Aquí tendríamos un array de dos dimensiones, por un lado las columnas y por otro las filas, encada una de las concordancias de las dos tendríamos un valor diferente, para representar este array en programación PHP tendríamos que hacer lo siguiente:

$matrizmulti = array(
"Fila0" => array("Columna0" => "valor a0", "Columna1" => "valor a1", "Columna2" => "valor a2", "Columna3" => "valor a3"),
"Fila1" => array("Columna0" => "valor b0", "Columna1" => "valor b1", "Columna2" => "valor b2", "Columna3" => "valor b3"),
"Fila2" => array("Columna0" => "valor c0", "Columna1" => "valor c1", "Columna2" => "valor c2", "Columna3" => "valor c3"),
"Fila3" => array("Columna0" => "valor d0", "Columna1" => "valor d1", "Columna2" => "valor d2", "Columna3" => "valor d3"),
)

Así estaría representado nuestro array asociativo de dos dimensiones, para acceder al valor de alguna de las celdas tendríamos que declarar la celda a la que queremos acceder de la siguiente manera:

echo $matrizmulti["Fila0"]["Columna0"]; //nos imprime el valor "valor a0" como resultado;
echo $matrizmulti["Fila3"]["Columna2"]; //nos imprime el valor "valor d2" como resultado;

Nota: Se pueden crear tantas dimensiones como se deseen aunque lo normal es no crear más de 3 por la dificultad que entraña después acceder a los datos que contienen, para almacenar datos en más de tres dimensiones existen mejores métodos como por ejemplo almacenarlos en una base de datos.

Acceso sencillo al contenido de un array completo

Vamos a ver dos formas sencillas de ver el contenido completo de un array simple y dimensional:

$matriz = range(0, 100);
var_dump($matriz); //volcará todos los datos de la función sin formatearlos

Con a instrucción o función interna var_dump obtendremos la totalidad de datos del array en forma plana sin formatear

$matriz = range(0,100);
print_r($matriz); //igual que la anterior pero con un mejor formateado de los datos devueltos

Y una más que aunque se trata de un bucle y éstos los vamos a ver en páginas posteriores, es muy práctico y debemos ponerlo para su uso, sería la instrucción while > each, que declararíamos de la siguiente manera:

$matriz = range(0,100,2);
reset($matriz);
while( $element = each ($matriz) ) {
echo $element['key']." - ".$element['value']."";
}

Existen mejores formas de acceder a los elementos de una matriz que veremos en la sección dedicada a los bucles de programación

¿Te ha parecido interesante este contenido..?
En ese caso, te pedimos por favor que nos des tu valoración graicas a esto podemos mejorar nuestras lecciones. Gracias.
1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (Ninguna valoración todavía)
Cargando…

Social Media

  • YouTube

    Suscríbete a nuestro canal de YouTube para ver todos nuestros vídeos sobre programación

  • Twitter

    Síguenos en Twitter e infórmanos de ello, es muy probable que también te sigamos

  • Facebook

    Estamos pensando si abrir una página de Facebook o no...

  • LinkedIn

    En breve...

  • Instagram

    En breve...

  • Github

    En breve...

A %d blogueros les gusta esto: