Nuestro proyecto parte 6 - Explicaciones obligatorias
Hola y bienvenidos. En esta entrega vamos a revisar las adiciones hechas en nuestra entrega anterior con todo el detenimiento necesario.
La primera de nuestras adiciones es una viñeta de selección HTML
Por favor escoja el tipo del producto:
<SELECT NAME = "tipo_prod">
<OPTION VALUE = "">
<OPTION VALUE = "disco">Disco
<OPTION VALUE = "libro">Libro
</SELECT>
Esta adición le permite al usuario seleccionar uno de dos producto (no los dos a la vez), para evitar algún error de digitación por parte del usuario. Además, una adición curiosa dentro de esta viñeta de selección: un valor vacío. Esto es en realidad para evitar que la selección tenga un valor específico por defecto, y así minimizar la cantidad de errores que el usuario podría cometer.
En segundo lugar tenemos la siguiente adición:
$precio_original = 0;
Lo hecho aquí recibe el nombre de inicialización, lo cual no es más que dar un valor inicial a una variable con el objetivo de que ésta no guarde en su interior cualquier valor de la memoria, lo que se conoce como "valores basura". Esta es una buena costumbre que sería bueno que tuviésemos desde un principio, pues no solamente nos servirá con PHP, sino con muchos, muchíiiiiiiiisimos otros lenguajes.
La tercera de nuestras adiciones fue una estructura de control:
if($tipo_prod =="disco"){
$precio_original = 15.5;
}
Esta estructura, en conjunción con la viñeta de selección (el menú emergente o pop up menú) es en realidad la GRAN ADICIÓN. La estructura toma el valor seleccionado en el menú emergente (disco o libro) y procesa el resultado. Como habrán visto, la variable$tipo_prod es, en realidad, el nombre de la viñeta SELECT y la comparación de igualdad ($tipor_prod =="disco")se hace con el valor de la viñeta OPTION.
Por otro lado, antes de decir el por qué, la pregunta para el apreciable lector es la siguiente: ¿por qué en la estructura de control incluimos un elseif en lugar de un simple else?
La respuesta es la siguiente: si la estructura hubiese incluido un else en lugar del elseif que contiene, cualquier otro valor distinto de "disco" hubiese valido 20, incluyendo un espacio vacío, por lo que nuestro programa hubiese tenido un valor de 22.60 incluso antes de haber seleccionado un tipo de producto, lo cual, obviamente, no es aceptable. De esto se deduce que la sentencia else, si hemos de hacer una comparación con otra estructura de control, es similar a la sentencia default en un switch, es decir, si cualquier otra comparación de la sentencia switch no se cumple, la sentencia default será escogida y se ejecutará.
En nuestra siguiente entrega, vamos a hacer una adición más a nuestro código, que nos obligará a hacer una adición importante a nuestra sentencia if...elseif.
Por el momento, los dejamos con la siguiente reflexión de Giovanni Giacomo Casanova: "El amor no es más que una curiosidad". Amemos lo que hacemos, amemos lo que aprendemos, seamos curiosos, no nos conformemos nunca. Hasta Pronto.