Curso PHP Online. Volumen V : Tipos II y Operadores

Escrito por Jalths
Manuales
0

Buenos días, espero que estéis listos para aprender un poco mas de PHP porque hoy nos toca cambio de tipos,forzado de tipos y operadores.

Empecemos con el cambio de tipos.

Como hemos visto anteriormente PHP es un lenguaje dinámicamente tipado ,por lo que no es necesario especificar el tipo de las variables en el código. Este hecho provoca que para ejecutar un cambio de tipo en PHP solo sea necesario asignar un nuevo valor del tipo que queramos y la variable se convertirá automáticamente a ese tipo.

Este fenómeno en términos técnicos queda definido en el manual oficial de PHP como Type Juggling.

Caso especial:

A continuación se comenta algo que tiene que ver en parte con esto y en parte no,pero se puede tomar como un cambio de cadena a matriz de caracteres aunque realmente no sea exactamente así.

Intentad tratar una cadena de texto como un array , ¿Que pasa?. Si, podemos referirnos perfectamente a cada carácter con el orden que ocupa en dicha cadena.

Interpretad este script y a ver que pasa, os lo dejo a vosotros.

Ahora probad esto mismo con un integer por ejemplo, ¿pasa lo mismo?

La respuesta es no.

Esto lo veremos durante el curso con mas detenimiento, por ahora vamos con forzado de tipos.

A pesar de que PHP asigna el tipo de variable “según su contenido” , podemos forzar a que una variable adquiera el tipo que queramos. La sintaxis de un forzado de tipo seria la siguiente:

$variable = (tipoalquevamosaforzar) $otravariable(o la misma);

Ejemplo, vamos a truncar los decimales de un float , para ello lo forzamos a ser integer

En el futuro cuando veamos objetos, veremos algo mas de forzado de tipos pero por ahora esto es todo. Así que , pasemos a operadores.

Los operadores como su propio nombre indica nos van a permitir realizar X operaciones sobre Y elementos que tengamos en nuestro código.

Antes de listar los operadores , os aviso de que se van a dejar sin ver por ahora los operadores de ejecución,los operadores bit a bit,control de errores, y también voy a omitir los de asignación porque llevamos asignando valores a variables todo el curso y sabéis de sobra que el = se usa para asignar. Algunos de los operadores que faltan ser verán a lo largo del curso.

Lista de operadores (operando sobre una variable para que se vea mas claro):

Aritméticos:

$var1 + $var2 Suma.
$var1 – $var2 Resta.
$var1 * $var2 Multiplicación.
$var1 / $var2 División.
$var1 % $var2 Modulo(resto de la división entre var1 y var2).
-$var1 Negación de var1 , es decir su opuesto.

Incremento:
++$var Incrementa $var y luego lo devuelve el valor incrementado en $var.
–$var Decrementa $var y luego lo devuelve el valor incrementado en $var.
$var++ Devuelve $var y luego la incrementa.
$var– Devuelve $var y luego la decrementa.
$var += numero Incrementa el valor de $var en el numero deseado.

Comparación:
$var1 == $var2 Compara si las dos variables son iguales.
$var1 === $var2 Compara si las dos variables son iguales y del mismo tipo(se dice que son IDENTICAS).
$var1 $var2 Compara si las dos variables son diferentes (igual que el siguiente).
$var1 != $var2 Compara si la las dos variables son diferentes.
$var1 !== $var2 Compara si las dos variables son no idénticas.
$var1 > $var2 Compara si la var1 es mayor a la variable var2.
$var1 < $var2 Compara si la var1 es menor a la variable var2.
$var1 = $var2 Compara si la variable var1 es mayor o igual a la variable var2.

Lógicos
$var1 && $var2 Se cumple si ambas variables cumplen la condición.
$var1 || $var2 Se cumple si una de las variables cumple la condición o ambas lo hacen.
!$var1 Niega var1 , Se cumple si la variable no es true.
$var1 xor $var2 Se cumple si una de las variables cumple la condición.
$var1 and $var2 Se cumple si ambas variables cumplen la condición.
$var1 or $var2 Se cumple si una de las variables cumple la condición o ambas lo hacen.

Arrays
$array1 == $array2 Compara la igualdad de las dos matrices (misma clave/valor)
$array1 === $array2 Compara la identidad de las dos matrices (misma clave/valor,orden y tipo de datos)
$array1 != $array2 Compara la distinción de dos matrices
$array1 <>$array2 Compara la distinción de dos matrices
$array1 !== $array2 Compara la no-identidad de las dos matrices
$array1 + $array2 Unión de dos matrices*

*Si se intentan unir dos arrays que tienen las mismas claves prevalecerán las claves y los valores de la array que se encuentre a la izquierda del operador +.

Como este volumen se esta alargando , y es un poco difícil explicar con ejemplos prácticos el uso de algunos operadores sin haber visto sentencias de control y bucles(que veremos pronto , mas o menos dentro de dos volúmenes), vamos a dejarlos aparcados hasta ese momento en el que sera necesario saberlos (o tener a mano la lista, cosa que siempre viene bien) porque aparecerán bastante.

Y por ultimo antes de despedirnos, os dejamos la solución al “ejercicio” que planteamos la semana pasada, si lo recordáis era intentar introducir dentro de una variable contenido en formato HEREDOC/NOWDOC.A continuación dejamos el código de como se haría con HEREDOC , siendo exactamente igual para NOWDOC pero utilizando ese formato.

Solución:

<?php
$var1 = <<<EOD
Hola Redezone <br>
Esto es el curso de PHP
EOD;
echo “$var1”; #Muestra el contenido
?>

En el caso del ejercicio de las arrays(mirar el código y averiguar porque pasaba lo que pasaba), simplemente pasaba porque cuando se usa una clave numérica en un array , y luego mas elementos sin clave, a esos elementos sin clave se le asigna como clave un numero de ascendente desde la  clave numérica(la utilizada anteriormente). 

 

Esto ha sido todo por hoy, nos vemos en el próximo volumen en el que veremos Constantes y variables y palabras especiales.

Un saludo!