Nociones basicas + Suplemento NHK Let’s Learn Japanese – Lecciones en video
Oct 10

En esta entrada dare una pasada breve a la asignacion de variables y constantes.

Variables

Una variable es un nombre asociado a un valor, este valor puede cambiar. Como vimos en la entrada anterior, las variables en php comienzan con el signo $, como por ejemplo:

<?php
   // declaro algunas variables
   $mi_numero = 10;
   $mi_texto = 'manzanas';
   echo $mi_numero.' '.$mi_texto;
?>
10 manzanas

Podemos utilizar variables en operaciones, por ejemplo sumar dos variables y asignar el resultado a una tercera:

<?php
   $a = 20;
   $b = 30;
   $suma = $a + $b;
   echo "$a mas $b es igual a $suma";
?>
20 mas 30 es igual a 50

Tambien es posible asignar un mismo valor a multiples variables de forma simultanea:

<?php
   $a = $b = 10; // ambas valen 10
   $b = $a + 5; // ahora b vale 15
   $c = $a + $b;
   echo "a:$a b:$b c:$c";
?>
a:10 b:15 c:25

Algo que no habia mencionado, es que los nombres de las variables son sensibles a mayusculas y minusculas, por ejemplo $var y $Var son dos variables distintas,

<?php
   $color = 'verde';
   echo $color; // verde
   echo $Color; // marcara error pues $Color no esta definido
?>

Un elemento interesante en cuanto a las variables en php, es que no es necesario definir el tipo de dato(entero, string, flotante), esto lo hace php por si solo, incluso si asignamos un numero como texto, podemos usarlo dentro de una operacion aritmetica. Veamoslo en un ejemplo, usare la funcion var_dump() para verificar el tipo de dato,

<?php
   $num = '8.5';
   $doble = 2*$num;
   var_dump($num, $doble);
?>
string(3) "8.5" float(17)

El output indica que la variable $num es string de largo 3 y valor “8.5″, aun asi de forma exitosa multiplica a un numero. El resutado que es 17 queda tipo float porque al multiplicar considera 8.5 como flotante y mantiene el tipo en el resultado.
Si quisieramos cambiar el tipo nosotros mismos podemos hacer por ejemplo:

<?php
   $num = '8.5';
   $num1 = (int) $num;
   $num2 = (float) $num;
   var_dump($num1, $num2);
?>
int(8) float(8.5)

Aca la variable $num que es de tipo string la guarde como entero en la variable $num1 por lo que perdio su parte decimal y como flotante en $num2.

Eso es mas que suficiente por ahora en cuanto a variables.

Constantes

A diferencia de las variables, las constantes mantienen su valor asociado una vez definidas. Veamos un ejemplo:

<?php
   define('NUM',10); // constante numerica
   define('SALUDO','Bienvenido a mi sitio'); // constante de texto
   echo NUM;
   echo SALUDO;
   echo NUM*2;
?>
10Bienvenido a mi sitio20

Como vemos, las constantes asi como las variables pueden ser usadas en operaciones aritmeticas. Pero que sucede si intentamos interpolar una constante dentro de un texto:

<?php
   define('HELLO','Mucho gusto');
   echo "HELLO en conocerte.<br />"; // no funciona
   echo HELLO.' en conocerte.'; // esto si
?>
HELLO en conocerte.
Mucho gusto en conocerte.

Vemos que a pesar de tener doble comilla, la constante no es interpretada como las variables, por esto es necesario usar concatenacion.
Otra cosa a notar es que define por defecto es sensible a mayusculas y minusculas asi como las variables, por ejemplo:

<?php
   define('SALUDO','Bienvenido al sitio');
   echo SALUDO; // muestra correctamente
   echo Saludo; // marca error
?>

Pero se puede cambiar modificando el tercer parametro que por defecto es FALSE por TRUE:

<?php
   define('SALUDO','Bienvenido al sitio',TRUE);
   echo Saludo;
?>
Bienvenido al sitio

Veamos ahora un ejemplo sencillo con numeros:

<?php
   define('PI',3.14); // constante
   $radio = 20; // variable
   $perimetro = 2*PI*$radio;
   echo 'El perimetro de un circulo de radio 20 es '.$perimetro;
?>
El perimetro de un circulo de radio 20 es 125.6

Una ultima cosa que decir respecto de las constantes, es que php dispone de algunas por defecto como:

<?php
   // Son dos guiones bajos seguidos, no uno solo
   echo __FILE__.'<br />'; //nombre del archivo
   echo __LINE__; //linea en el script
?>
/opt/lampp/htdocs/testing.php
4

Eso seria por esta entrada.


Dejar un comentario