La estructura en PHP: Operadores, variables y strings

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:

Así $contador valdría 6. El comando anterior es igual que hacer esto:

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:

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.

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:

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:

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é.

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.

Concatenación de Strings

Para concatenar o unir 2 strings se emplea el punto para unir un string con otro.

También se puede concatenar de la siguiente forma:

 

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):

Pero si se usan las comillas dobles, se mostraría el valor de la variable:

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:

Para corregirlo hay que añadir una barra invertida (backslash) para que PHP lo trate como un carácter literal y no lo interprete:

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:

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:

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:

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.

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:

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 😉