Dado que hace casi un mes que puse la currícula, y no hubieron cambios, así que empiezo:
Una variable es un contenedor que almacena un valor. Una constante también. La diferencia radica, como indican sus nombres, en que el valor que guarda una variable puede cambiar en el transcurso de un programa, mientras que el de una constante se determina en un momento, y permanece igual hasta que éste se termina.
El ejemplo típico de constante es pi.
En algunos lenguajes, como en C, es necesario declarar una variable antes de poder utilizarla. En otros, como en PHP, una variable se declara tan pronto se le otorga un valor.
Variables:
$valor=1;
Constantes:
define("PI",3.14159);
Al principio puede parecer inútil una constante, después de todo se la puede reemplazar por una variable, pero con el tiempo se aprende que sí son útiles: si un valor se usa repetidamente en varios lugares diferentes, es bueno definirlo como una constante para evitar errores, o por si luego queremos cambiar su valor… en el primer caso, si en algún lugar escribimos 31.4159, el valor final estará mal. En el segundo, si queremos cambiar la precisión de PI de 3.14159 a un valor con 15 decimales, simplemente cambiamos el valor de la constante, y no en todos los lugares donde lo usemos (ejemplo: podemos calcular el área y perímetro de un círculo, y el volumen y superficie de una esfera, a partir de un radio, y todos éstos cálculos involucran a PI).
La asignación, simplemente, es el hecho de poner un valor en una variable. Se hace con el operador =. El valor asignado puede ser un literal (5, “Tordek”, 3.14159…), o el resultado de una operación (matemática, la aplicación de una función, una operación sobre cadenas, o alguna combinación de esto):
$a = 5; $nombre = "Tordek"; $cuadrado = 4 * 4; $saludo = "Hola, " . $nombre;
Para ver el valor de una variable (o el resultado de una operación), llamamos a echo.
Si no tuviéramos variables ni constantes, para imprimir los 4 valores que dije antes (perímerto y área de un círculo, y superficie y volumen de una esfera), deberíamos escribir algo así (para un radio 10):
(Nota: el punto es un operador de concatenación, es decir, “a”.”b”=”ab”. Cuando veamos cadenas lo explicaré más profundamente.)
echo "Perimetro: ". 2 * 3.14159 * 10; echo "Superficie: ". 3.14159 * 10 * 10; echo "Area: ". 4 * 3.14159 * 10 * 10; echo "Volumen: ". 4/3 * 3.14159 * 10 * 10 * 10;
Si ahora hacemos que PI sea una constante, se ve todo más limpio:
define("PI", 3.14159); echo "Perimetro: ".2 * PI * 10; echo "Superficie: ". PI * 10 * 10; echo "Area: ". 4 * PI * 10 * 10; echo "Volumen: ". 4/3 * PI * 10 * 10 * 10;
Ahora, podemos poner el valor del radio en una variable, y si lo queremos cambiar, sólo tocamos un lugar:
define("PI", 3.14159); $r=10; echo "Perimetro: ".2 * PI * r; echo "Superficie: ". PI * r * r; echo "Area: ". 4 * PI * r * r; echo "Volumen: ". 4/3 * PI * r * r * r
Pero se sigue viendo algo apretado… podríamos hacer todos los cálculos primero, e imprimirlos después:
define("PI", 3.14159); $r=10; $perimetro = 2 * PI * r; $superficie = PI * r * r; $area = 4 * PI * r * r; $volumen = 4/3 * PI * r * r * r; echo "Perimetro: ". $perimetro; echo "Superficie: ". $superficie; echo "Area: ". $area; echo "Volumen: ". $volumen;
Sí, ahora es un poco más amplio, pero es discutiblemente más legible. Algún matemático en la audiencia puede notar que la operación PI * r se repite siempre, así que podría almacenar su valor en una constante, y reemplazarlo donde se lo necesite… pero esto termina haciendo que el código sea más difícil de leer (y feo), y lo que ganamos en velocidad en ahorrarnos tres multiplicaciones (se usa 4 veces, y se calcula 1) es tan minúsculo que es despreciable. Siempre se tiene que intentar que lo que se escribe sea fácil de entender, y por las variables se empieza.
Miércoles 15 de Agosto de 2007, 06:03
Ya se que tu intención es simplemente explicar que son variables y constantes… pero para quien recién empieza, podría ser bueno que hagas una pequeña introducción de como meter código php y verlo funcionando… así, a medida que aprende puede probar.
Jueves 16 de Agosto de 2007, 14:59
[...] Tehsis dijo algo que ahora es más que obvio: estoy explicando las constantes y variables y demás en PHP… pero si se supone que el que lee esto quiere aprender PHP, no está por saber cómo ejecutar ese código… [...]
Lunes 29 de Octubre de 2007, 21:27
Las constantes son muy útiles para definir las configuraciones de nuestro programa. Por ejemplo:
define('APP_NAME', 'Tordek);define('APP_PATH', '/home/tordek-user/public_html/');
define('COMMENT_ALLOW', '1'); // o 0 para deshabilitar comentarios
Las primeras dos constantes
APP_NAMEyAPP_PATHcreo que son un buen ejemplo de dónde utilizar constantes. En el caso de la segunda, sólo tendríamos que cambiar su valor si la aplicación cambia de usuario o servidor (con configuraciones diferentes en este caso).