- La estructura en PHP: Comentarios, sintaxis y arrays
- La estructura en PHP: Operadores, variables y strings
- La estructura en PHP: Constantes, funciones, variables y su ámbito
En este post continuaré con la explicación de la estructura en PHP. Se abordarán los operadores, asignación de variables, comandos en varias líneas y tipificación de variables.
Operadores
Seguramente estes pensando en los operadores clásicos como + y -. Sin embargo en PHP hay mucho más que operadores matemáticos como los string, comparación y lógicos.
Operadores artiméticos
Operador | Acción | Ejemplo |
---|---|---|
+ | Suma | $x + 1 |
– | Resta | $x – 5 |
* | Multiplicación | $x * 8 |
/ | Division | $x / 2 |
% | Obtener resto de división | $x % 4 |
++ | Incremento | $x++ o ++$x |
— | Decremento | $x– o –$x |
Operadores de asignación
Estos operadores son usados para asignar valores a las variables. Se usa un (=) con un (+) o (-). Por ejemplo, $contador vale 5 y realizamos la siguiente operación:
1 |
$contador += 1; |
Así $contador valdría 6. El comando anterior es igual que hacer esto:
1 |
$contador = $contador +1; |
Operador | Ejemplo | Equivalente a |
---|---|---|
= | $y = 15 | $y = 5 |
+= | $y += 4 | $y = $j + 4 |
-= | $y -= 6 | $y = $y – 6 |
*= | $y *= 9 | $y = $y * 9 |
/= | $y /= 12 | $y = $y / 12 |
.= | $y .= $x | $y = $y . $x |
%= | $y %= 4 | $y = $y % 4 |
Operadores de comparación
Generalmente se usan en declaraciones if en donde se comparan 2 elementos. Por ejemplo, si quieres saber si una variable ha alcanzado un valor determinado o si su valor es mayor que otra variable.
Operador | Acción | Ejemplo |
---|---|---|
== | Es igual a | $x == 4 |
> | Es mayor que | $x > 21 |
< | Es menor que | $x < 100 |
>= | Es mayor o igual a | $x >= 34 |
<= | Es menor o igual a | $x <= 8 |
Operadores lógicos
Un operador lógico combina el resultado de 2 o más comparaciones de comparación. Cuando se realiza una comparación siempre devuelve un TRUE o FALSE. Por ejemplo, imagínate que te propones lo siguiente: “Si la hora es más tarde de las 20:00 y antes de las 22:00, entonces voy a cenar”. En PHP sería esto:
1 |
if ($hora > 20 && $hora < 22) cenar(); |
Con && las 2 comparaciones tienen que ser verdaderas o TRUE para poder hacer la función cenar().
En el caso de un “o” que sería || bastaría con que una de las comparaciones sea verdadera.
Operador | Acción | Ejemplo |
---|---|---|
&& | y | $x == 4 && $y == 3 |
and | y pero de menor precedencia | $x == 4 and $y == 3 |
|| | O | $x == 6 || $y == 8 |
or | O de baja precendencia | $x == 6 or $y == 8 |
! | No | !($x == $y) |
xor | O exclusivo | $x xor $y |
Los operadores and y or pueden parecer similares a && o ||, pero no lo son. Los operadores and y or tienen una menor precedencia o prioridad haciendo necesario un paréntesis para obtener el resultado adecuado.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$var1 = true; $var2 = false; $resultado = $var1 and $var2; if ($resultado) { echo "verdadero"; } else { Echo "falso"; } |
Este código debería de imprimir falso ya que en una comparación and todas comparaciones deben ser verdaderas . Sin embargo, imprime verdadero y es porque interpreta el código de la siguiente manera:
1 |
($resultado = $var1) and $var2; |
Esto se debe a que la asignación (=) tiene más prioridad que el and. Entonces para que el resultado sea falso, que es lo debería de imprimir, habría que realizar lo siguiente:
1 |
$resultado = ($var1 and $var2); |
En cuanto al operador xor, significa exclusive or y devuelve verdadero si alguno de los valores es verdadero, pero si los 2 son falsos o verdaderos el resultado será falso. Recordad que el or o || basta con que una comparación sea verdadera y en caso de ser las 2 comparaciones verdaderas, daría verdadero.
Asignación de variables
La sintaxis para asignar un valor a una variable es siempre variable = valor. En caso de reasignarle valor de una variable a otra es variable = variable.
Como se mencionó anteriormente, hay un par de operadores de asignación que pueden ser útiles, (+=) y (-=).
Incremento y decremento de variables
Además de los operadores (+=) y (-=) pueden usarse otros operadores, (++) y (–). La posición de los operadores va a ser determinante, veamos por qué.
1 2 3 |
$x=9; if (++$x == 10) echo $x; |
Primero se incrementa 1 a $x y luego se comprueba que su valor es 10, si lo es imprime el valor de $x.
Ahora al revés, sumar 1 a la variable después de comprobar.
1 2 3 |
$y=0; if ($y++ == 0) echo $y; |
Concatenación de Strings
Para concatenar o unir 2 strings se emplea el punto para unir un string con otro.
1 2 3 |
$usuario = “David”; Echo “Hola”.$usuario.” Eres bienvenido.”; |
También se puede concatenar de la siguiente forma:
1 2 3 4 5 6 7 |
$mensaje = “Hola ”; $usuario= “David”; $mensaje .= $usuario; Echo $mensaje |
Tipos de Strings
PHP soporta 2 tipos de strings que se diferencian por las comillas que se usan. Para un string literal, preserva exactamente todo el contenido, se usa el apóstrofe (comilla simple):
1 2 3 |
$variable = 100; Echo ‘Esto es un string literal con una $variable dentro’; |
Pero si se usan las comillas dobles, se mostraría el valor de la variable:
1 |
Echo “Esto es un string con una $variable dentro”; |
Con las comillas dobles no sería necesario concatenar para mostrar el valor de una variable dentro de un string.
Escape de caracteres
Algunas veces un string necesita caracteres especiales, pero PHP puede interpretarlos incorrectamente. Os pongo un ejemplo de un código que no funcionaría:
1 |
$texto = “Este es un “texto” con comillas.”; |
Para corregirlo hay que añadir una barra invertida (backslash) para que PHP lo trate como un carácter literal y no lo interprete:
1 |
$texto = “Este es un \“texto\” con comillas.”; |
Esto te valdrá para casi todas las situaciones en donde PHP interprete un carácter no deseado.
También se pueden insertar varios caracteres especiales conocidos como secuencias de escape. Un par de ejemplos serían la tabulación (\t) y nueva línea (\n).
Comandos de varias líneas
Puede darse el caso de que queramos imprimir varias líneas de texto. Si usamos varios comandos echo nos haría perder tiempo y el código quedaría un poco engorroso, pero PHP nos ofrece otras alternativas.
La primera sería poner varias líneas de texto entre comillas:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$autor ="Lorem Ipsum"; echo "Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed ac faucibus neque. Integer varius volutpat urna, sed viverra elit faucibus eget. Donec imperdiet diam iaculis sollicitudin feugiat. - $autor"; |
También se puede usar el operador <<< conocido como here-document o heredoc. Va seguido de un identificador que en este caso se llamará texto:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$autor ="Lorem Ipsum"; echo <<<_TEXTO Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed ac faucibus neque. Integer varius volutpat urna, sed viverra elit faucibus eget. Donec imperdiet diam iaculis sollicitudin feugiat. -$autor _TEXTO; |
Todo lo que este entre las etiquetas _TEXTO es string con doble comillas.
Es importante saber que el cierre de etiqueta _TEXT debe estar justo al principio de una nueva línea y no solo puede estar esa etiqueta ni siquiera un comentario.
La ventaja del heredoc es que no es preciso escapar las comillas.
Ahora os mostraré un ejemplo con una variable y usando comillas dentro del texto:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$autor ="Lorem Ipsum"; $heredoc = <<<_TEXTO Interdum et "malesuada" fames ac ante ipsum primis in faucibus. Sed ac "faucibus" neque. Integer varius volutpat 'urna', sed viverra elit faucibus eget. 'Donec' imperdiet diam iaculis 'sollicitudin' feugiat. -$autor _TEXTO; echo $heredoc; |
No es preciso terminar la asignación de la variable $heredoc con un punto y coma.
Para concatenar strings también se puede usar el (.=).
Tipificación de variables
En otros lenguajes de programación como en Java es preciso declarar una variable antes de usarla, indicando que tipo de dato va almacenar. En PHP siempre convierte las variables al tipo requerido según el contexto.
1 2 3 |
$numero = 47230; echo substr($numero, 3, 1); |
En este caso un número es convertido en un string de 5 caracteres y con el comando substring se obtiene el carácter situado en la 4º posición (recordad que se cuenta desde 0).
También puede pasar a la inversa:
1 2 3 4 5 |
$numero = "6"; $numero2= "5"; echo $numero * $numero2; |
En conclusión, no tienes que preocuparte demasiado por el tipo de las variables.
Y hasta aquí la 2º parte. Todavía falta otra parte donde abordaré constantes, funciones y ámbito de las variables. Espero haberos sido de ayuda. Saludos 😉