Curso básico de PHP/Cambiamos el tipo de la variable usando cast

De WikiCabal
Ir a la navegación Ir a la búsqueda

Cambiamos el tipo de la variable usando cast

 1 <!DOCTYPE HTML>
 2 <html lang="es-MX">
 3   <head>
 4     <title>
 5       Curso PHP - Cambiar el tipo de la variable usando cast
 6     </title>
 7   </head>
 8   <body style="background-image:url('images/logoBG.jpg');">
 9     <?php
10       $MiVar = 3.14;
11 
12       print( "<p style=\"font:14pt helvetica;\">" );
13       $MiOtraVar = (double) $MiVar;
14       print(    gettype( $MiOtraVar ) );          // Double
15       print(   " es $MiOtraVar<br />" );          // 3.14
16 
17       $MiOtraVar = (string) $MiVar;
18       print(    gettype( $MiOtraVar ) );          // String
19       print(   " es $MiOtraVar<br />" );          // 3.14  
20 
21       $MiOtraVar = (integer) $MiVar;
22       print(    gettype( $MiOtraVar ) );          // Integer
23       print(   " es $MiOtraVar<br />" );          // 3
24 
25       $MiOtraVar = (double) $MiVar;
26       print(    gettype( $MiOtraVar ) );          // Double
27       print(   " es $MiOtraVar<br />" );          // 3.14
28 
29       $MiOtraVar = (boolean) $MiVar;
30       print(    gettype( $MiOtraVar ) );          // Boolean
31       print(   " es $MiOtraVar<br />" );          // 1
32 
33       print(   '<br />' );
34       print(   "Tipo de la variable original: " );
35       print(    gettype( $MiVar ) . "<br />" );   // Double
36       print(   "El valor de la variable original: $MiVar
37               </p>" );
38     ?>
39   </body>
40 </html>

Explicación

El propósito de este programa, es conocer cómo podemos cambiar los tipos de las variables de forma temporal usando cast.

Las primeras líneas de código fuente son iguales que en el ejemplo: Hola Web, que van desde la línea 1 hasta la línea 7 donde agregamos un estilo a nuestra etiqueta <body> para poner un imagen como el fondo de nuestra página con el etiqueta style="background-image:url('images/logoBG.jpg');, por lo cual, si tienes alguna duda dirígete a éste.

En la línea 8, iniciamos una sección de php con la etiqueta <?php.

En línea 9, asignamos el valor 3.14 a la variable $MiVar.

En línea 11, como argumento de la directiva print se usa la etiqueta<p style=\"font:14pt Helvetica;\"> para indicar el inicio de un párrafo usando la fuente Helvetica en 14 puntos. Pusimos font:14pt Helvetica; entre comillas dobles, escapadas, para enviar las comillas, literalmente, como parte de los argumentos de la etiqueta <p style=.

En línea 12, asignamos el valor (double) $MiVar a la variable $MiOtraVar. El codigo (double) se llama "cast" (conversión temporal de tipos), esto significa que, al asignar el valor de $MiVar a $MiOtraVar la estamos convirtiendo a tipo double (doble). $MiVar seguirá con su valor y tipo original, por otro lado, $MiOtraVar tendrá el valor de $MiVar pero de tipo double , que en este caso es el mismo que el original.

En la línea 13, como argumento de la directiva print se usa la función gettype( $MiOtraVar ) con argumento la variable $MiOtraVar. Al final de la línea está el comentario //Double.

En la línea 14, la cadena es $MiOtraVar<br /> está como argumento de la directiva print, que junto con la línea 13 escriben "double es 3.14" (sin comillas), con un salto de línea nuevo al final, indicado por la etiqueta <br />. Observa que $MiVar se diferencia por su valor, que al momento es el número 3.14.

En línea 16 asignamos el valor (string) $MiVar a la variable $MiOtraVar. El codigo (string), (un otro cast), significa que al asignar el valor de $MiVar a $MiOtraVar la estamos convirtiendo a tipo string. $MiVar seguirá con su valor y tipo original y $MiOtraVar tendrá el valor de $MiVar en tipo string.

En la línea 17, como argumento de la directiva print se usa la función gettype( $MiOtraVar ), que tiene como argumento la variable $MiOtraVar. Al final de la línea está el comentario //String.

En la línea 18, como argumento de la directiva print, está la cadena es $MiOtraVar<br /> que junto con la línea 17 escriben "string es 3.14" (sin comillas), con un salto de línea nuevo al final indicado por la etiqueta <br />. Nota que $MiVar se diferencia por su valor, que al momento es la cadena de caráctares "3.14" (sin comillas).

Como explicamos en el programa SetType, (double) $MiVar es un número con partes decimales, mientras que "string", (string) $MiVar es una colección de 3 numerales y un signo de puntuación con valores ASCII, útil para representar el concepto del número escrito. Para realizar operaciones aritméticas con strings, el interprete PHP va a promover automáticamente y de forma temporal usando un cast, el string a double o entero para realizar la operación sin cambiar al final su tipo original.

En línea 20, asignamos el valor (integer) $MiVar a la variable $MiOtraVar. El codigo (integer), (otro cast), significa que al asignar el valor de $MiVar a $MiOtraVar la estamos convirtiendo a tipo integer (entero). $MiVar seguirá con su valor y tipo original y $MiOtraVar tendrá el valor de $MiVar pero de tipo integer (entero).

En la línea 21, como argumento de la directiva print se usa la función gettype( $MiOtraVar ), que tiene como argumento la variable $MiOtraVar. Al final de la línea está el comentario //Integer.

En la línea 22, como argumento de la directiva print está la cadena es $MiOtraVar<br /> que junto con la línea 21 van a escribir "integer es 3" (sin comillas) con un salto de línea nuevo al final, indicado por la etiqueta <br />. Nota que $MiVar se diferencia por su valor, que al momento es el número 3.

Como explicamos en el programa SetType, la pérdida de las partes decimales se llama "perdida de precisión" ¿Piensas que podemos recuperarlas si reasignamos (double) $MiVar a $MiOtroVar? Vamos a ver.

En línea 24, asignamos otra vez el valor (double) $MiVar, a la variable $MiOtraVar. $MiVar seguirá con su valor y tipo original, y $MiOtraVar tendrá el valor de $MiVar de tipo double.

En la línea 25, como argumento de la directiva print se usa la función gettype( $MiOtraVar ), la cual tiene como argumento la variable $MiOtraVar. Al final de la línea está el comentario //Double.

En la línea 26, como argumento de la directiva print está la cadena es $MiOtraVar<br /> que junto con la línea 25 van a escribir "double es 3.14" (sin comillas) con un salto de línea nuevo al final, indicado por la etiqueta <br />. Nota que $MiVar se diferencia por su valor, que al momento es el número 3.14.

Aquí podemos ver, por cierto, que un cast es temporal y que no cambió el valor o tipo de la variable original. Con un cast podemos recuperar la precisión que perdimos en la sección "integer". Esta es muy diferente del resultado de cambiar el tipo de la variable con settype() que es un cambio permanente.

En línea 28, asignamos el valor (boolen) $MiVar a la variable $MiOtraVar. $MiVar seguirá con su valor y tipo original, por otro lado, $MiOtraVar tendrá el valor de $MiVar pero de tipo boolean (booleano).

En la línea 29, como argumento de la directiva print se usa la función gettype( $MiOtraVar ), la cual tiene como argumento la variable $MiOtraVar. Al final de la línea está el comentario //Boolean.

En la línea 30, como argumento de la directiva print está la cadena es $MiOtraVar<br /> que junto con la línea 29 van a escribir "boolean es 1" (sin comillas) con un salto de línea nuevo al final, indicado por la etiqueta <br />. Nota que $MiVar se diferencia por su valor, que al momento es el número 1, que significa en PHP un valor boolean de TRUE (verdad).

Finalmente, después de un salto de línea en la línea 32 se escribe, en la línea 33, la frase Tipo de la variable original: y en la línea 34 como argumento de la directiva print se usa la función gettype($MiVar) para ver que ninguna de los operaciones anteriores de cast cambian el tipo de la variable original, $MiVar, que se inició como double en la línea 9.

En la línea 35 se escribe la valor al fin del programa para ver que ninguna de los operaciones de cast se cambió la valor de $MiVar, 3.14, que se asignó en línea 9.

En la línea 36 se cierra el párrafo con la etiqueta </p> que se abro en la línea 11.

En la línea 37 se cierra el código de PHP con la etiqueta ?> y regresamos a HTML.

Las líneas 38 y 39 son etiquetas de HTML y forman la estructura básica de una página HTML que fueron explicadas en el programa básico ‘Hola Web’.

Ejecutarlo

Ejecutar el código para cambiar el tipo de la variable usando "cast"

Descargarlo

El archivo que vas a descargar tiene la extensión .phps que es una extensión especial que nos permite ver y descargar código PHP que normalmente no está disponible a descargar o ver.

Para usarlo, debes renombrar el archivo descargado y remplazar la extensión .phps con la extensión .php que permite ver el resultado de los comandos de PHP de manera nativa, a diferencia de la extensión .phps que no lo permite.

Descargar el código para cambiar el tipo de la variable usando "cast"