PHP7 Cap 3 PDF
PHP7 Cap 3 PDF
PHP7 Cap 3 PDF
De novato a experto
Capítulo 3: Operadores en PHP
Objetivo: El alumno aplicará los diferentes operadores en PHP como operadores aritméticos,
de asignación, bit a bit, de comparación, lógicos, entre otros, así como su precedencia.
Introducción:
En esta sección veremos los siguientes operadores:
● Introducción a los operadores y sus conceptos en PHP
● Operadores aritméticos
● Los operadores de asignación y los operadores abreviados o atajos
● Operadores de bit a bit
● Operadores de comparación
● Operadores Lógicos
● Otros operadores en PHP
● La precedencia de los operadores
● PHP7: El operador de fusión de null
● PHP7: Operador nave espacial .
Todo PHP7
● Un operador es algo que toma uno más valores (literales, variables u otros operadores) y
produce otro valor (de modo que la construcción en si misma se convierte en una expresión).
● Los operadores se pueden agrupar de acuerdo con el número de valores que toman. Los
operadores unarios toman sólo un valor, por ejemplo ! (el operador lógico de negación) o ++ (el
operador de incremento).
● Los operadores binarios toman dos valores, como los familiares operadores aritméticos +
(suma) y - (resta), y la mayoría de los operadores de PHP entran en esta categoría.
● Finalmente, hay sólo un operador ternario, ? :, el cual toma tres valores; usualmente a este se le
refiere simplemente como "el operador ternario" (aunque podría llamarse operador condicional).
● Operadores de tipo
● Operadores para arreglos
● Operadores para cadenas
● Operadores lógicos
● Operadores de incremento/decremento
● Operadores de ejecución
● Operadores de control de errores
● Operadores de comparación
● Operadores bit a bit
● Operadores de asignación
● Operadores aritméticos
1 <?php
2 $a = 6;
3 print -$a ** 3;
4 ?>
Listado 3.1.1. PHP7-0302-OperadoresAritmeticos.php
1 <?php
2 $a = 6;
3 print -$a ** 3;
4 ?>
Listado 3.2.1. PHP7-0302-OperadoresAritmeticos.php
● El operador básico de asignación es "=". Se podría inclinar a pensar primero que es como un
"igual a". No lo es. Realmente significa que el operando de la izquierda se establece con el
valor de la expresión de la derecha (es decir, "se define como").
● El valor de una expresión de asignación es el valor asignado. Es decir, el valor de "$a = 3" es
de 3.
● Además del operador básico de asignación, existen «operadores combinados» para todos los
de aritmética binaria, unión de arrays y operadores de strings que permiten usar un valor en
una expresión y entonces establecer su valor como el resultado de esa expresión. Se puede
realizar “Asignación por valor” vs. “Asignación por referencia”.
● Los “atajos” también son considerados operadores de asignación:
$a += $b $a = $a + $b Suma
$a -= $b $a = $a - $b Resta
$a *= $b $a = $a * $b Multiplicación
$a /= $b $a = $a / $b División
$a %= $b $a = $a % $b Módulo
1 <?php
2 $a = 30;
3 $a = $a + 5 / 2 * 10;
4 $a += 10;
5 $a /= 2;
6 $a *= 1.5;
7 print $a;
8 print $a++;
9 print $a--;
10 ?>
Listado 3.3.1. PHP7-0303-OperadoresAsginacion.php
1 <?php
2 $values = array(0, 1, 2, 4, 8);
3 $test = 1 + 4;
4 $formato = '(%1$2d = %1$04b) = (%2$2d = %2$04b)'
5 . ' %3$s (%4$2d = %4$04b)' . "<br>";
6 echo "AND bit a bit <br>";
7 foreach ($values as $value) {
8 $result = $value & $test;
9 printf($formato, $result, $value, '&', $test);
10 }
11 ?>
Listado 3.4.1. PHP7-0304-OperadoresBitaBit.php
● Los operadores de comparación, como su nombre lo indica, permiten comparar dos valores:
● $a == $b Igual, TRUE si $a es igual a $b después de la manipulación de tipos.
● $a === $b Idéntico, TRUE si $a es igual a $b, y son del mismo tipo.
● $a != $b Diferente, TRUE si $a no es igual a $b después de la manipulación de tipos.
● $a <> $b Diferente TRUE, si $a no es igual a $b después de la manipulación de tipos.
● $a !== $b No idéntico, TRUE si $a no es igual a $b, o si no son del mismo tipo.
● $a < $b Menor que, TRUE si $a es estrictamente menor que $b.
● $a > $b Mayor que, TRUE si $a es estrictamente mayor que $b.
● $a <= $b Menor o igual que, TRUE, si $a es menor o igual que $b.
● $a >= $b Mayor o igual que, TRUE, si $a es mayor o igual que $b.
● $a ?? $b ?? $c Fusión de null, El primer operando de izquierda a derecha que exista y no sea
NULL. NULL si no hay valores definidos y no son NULL. Disponible a partir de PHP 7.
● $a <=> $b Nave espacial, Un integer menor que, igual a, o mayor que cero cuando $a es
respectivamente menor que, igual a, o mayor que $b. Disponible a partir de PHP 7.
1 <?php
2 $a = 18;
3 $b = 11;
4 if($a==$b){
5 print " a es mayor que b";
6 } else {
7 print "a NO es mayor que b";
8 }
9 ?>
Listado 3.5.1. PHP7-0305-OperadoresComparacion.php
1 <?php
2 $dinero = false;
3 $tiempo = false;
4 if ($dinero and $tiempo) {
5 print "Voy al cine";
6 } else {
7 print "Me quedo en casa";
8 }
9 ?>
Listado 3.6.1. PHP7-0306-OperadoresLogicos.php
1 <?php
2 $a = 5;
3 print --$a;
4 print $a--;
5 print $a;
6 ?>
Listado 3.7.1. PHP7-0307-OperadoresOtros.php
● La precedencia de un operador indica qué tan "estrechamente" se unen dos expresiones juntas.
● Los paréntesis pueden ser usados para forzar la precedencia, si es necesario.
● Cuando los operadores tienen igual precedencia su asociatividad decide cómo se agrupan.
● Por ejemplo "-" tiene asociatividad a izquierda, así 1 - 2 - 3 se agrupa como (1 - 2) - 3 y se
evalúa a -4. "=", por otra parte, tiene asociatividad a derecha, así $a = $b = $c se agrupa como
$a = ($b = $c).
● Los operadores de igual precedencia que no son asociativos no pueden usarse unos junto a
otros, por ejemplo, 1 < 2 > 1 es ilegal en PHP. La expresión 1 <= 1 == 1, por otro lado, es legal,
ya que el operador == tiene menos precedencia que el operador <=.
● El uso de paréntesis, incluso cuando no es estrictamente necesario, a menudo puede aumentar
la legibilidad del código haciendo grupos explícitamente en lugar de confiar en la precedencia y
asociatividad implícitas del operador.
● no asociativo clone new
● izquierda [
● derecha **
● derecha ++ -- ~
● no asociativo instanceof
● derecha !
● izquierda * / %
● izquierda + - .
● izquierda << >>
● no asociativo < <= > >=
● no asociativo == != === !== <> <=>
● izquierda &
● izquierda ^
● izquierda |
● izquierda &&
● izquierda ||
● derecha ??
● izquierda ? :
● derecha = += -= *= **= /= .= %= &= |= ^= <<= >>=
● izquierda and
● izquierda xor
● izquierda or
1 <?php
2 $a = 2+(3*4)**2;
3 print $a;
4 ?>
Listado 3.8.1. PHP7-0308-Precedencia.php
1 <?php
2 $usuario = $_GET["usuario"]??$_POST["usuario"]??"Anonimo";
3 print $usuario;
4 ?>
5
Listado 3.9.1. operadorFusion.php
// Números enteros
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
1 <?php
2 print 1 <=> 1;
3 print "<br>";
4 print 1 <=> 2;
5 print "<br>";
6 print 2 <=> 1;
7 print "<br>";
8 print "<br>";
9 print 1.5 <=> 1.5;
10 print "<br>";
11 print 1.5 <=> 2.1;
12 print "<br>";
13 print 2.1 <=> 1.5;
14 print "<br>";
15 print "<br>";
16 print "1" <=> "1";
17 print "<br>";
18 print "1" <=> "2";
19 print "<br>";
20 print "2" <=> "1";
21 print "<br>";
22 print "<br>";
23 ?>
Listado 3.10.1. operadorNaveEspacial.php
Cuestionario:
1) Un operador es algo que toma uno más valores y produce otro valor.
1) Verdadero
2) Falso
16) El operador que se utiliza para determinar si una variable de PHP es un objeto
instanciado de una cierta clase.
1) class
2) instance
3) instanceof
4) is_instance_of()
17) Cuando los operadores tienen igual precedencia el término para evaluarlos lo
llamamos:
1) Igualdad
2) Asociatividad
3) Precedencia
4) Herencia
18) En PHP, para calcular el módulo (el resto) de una división, se emplea el operador
1) !
2) #
3) %
4) &
21) En PHP cuando dentro de una expresión de cadena queremos que se expanda el
contenido de una variable, encerramos la cadena con comillas simples. Por ejemplo: 'El
contenido es: $variable';
1) Verdadero
2) Falso
Indice