Plantilla:PHP/OperadoresExpresiones
De WikiEducator
Revisión a fecha de 18:14 13 dic 2022; ManuelRomero (Discusión | contribuciones)
Saltar a: navegación, buscar
|
Operadores y expresiones
Operadores
- Son símbolos que realizan acciones sobre operandos y dan como resultado un valor
- Tenemos diferentes tipos de operadores en función del tipo de operandos y del resultado
TIPO DE OPERADOR | Operadores aritméticos | Operadores lógicos | Operadores de comparación | Operadores de auto incremento/decremento | Operadores de string: concatenación |
OPERADOR | + - * / % ** | AND OR && || ! | == != << < > <= >= <=> ?? | ++$a $a++ --$a $a-- | . .= |
TIPO DE EXPRESIÓN | numérico | booleano | booleano | numérico | string |
TIPO DE OPERADOR | Operadores asignación simple | Operadores asignación compuesta | Operadores asignación por referenica | Operadores bit a bit | Operador de control de errors | Operador de ejecución |
OPERADOR | = | += *= -= %= **= .= | & | & | ^ ~ << >> | @ | `` |
TIPO DE EXPRESIÓN | valor asignado | numérico | valor referenciado | numérico | no retorna valor anula comunicación de errores si se pordujeran | resultado del comando ejecutado |
- Operadores de expresiones numércias
- Aritméticos (+,-,*,/,%)
- Autoincremente/decremento(++ --)
- Asignación compuesta (los aritmétcios segidos de una asignación += -= *= ....)
|
$num = 5+6*8-4/2;
$num = 5+(6*8)-(4/2);
|
- el ++, -- son valores de autoincremeto y autodecremento, pueder ser pre o post
- El el caso pre, primero incrementa y luego toma el valor
- El el caso post, primero toma el valor y luego incrementa
- Para muchos casos es lo mismo hacerlo pre que post, cuando en la instrucción solo haga eso
$a=5; $a++; echo "Valor de a es $a";
Es igual que
$a=5; ++$a; echo "Valor de a es $a";
Pero
$a=5; echo "Valor de a es ".++$a."<br />"; echo "Valor de a es $a<br />";
No es igual que
$a=5; echo "Valor de a es ".$a++."<br />"; echo "Valor de a es $a<br />";
}}
//Declara una variable entera y asigna el valor 4 //Usando el operador unario, incrementa una unidad y compáralo con el valor 5 //Muestra un mensaje mostrando su valor //Compáralo con el valor 4 y decrementa en una unidad , muestra información de que no es igual y muestra el valor //Analiza la salida y prueba deferentes situaciones
|
- Operadores
$a=5; if ($a++==5) echo '$a que vale '.$a.' dice que vale 5 ???? <br>' . 'Esto es por que primero compara y luego incrementa<br>'; echo 'ahora $a vale '.$a.'<br>'; if (++$a==6) echo 'esto nunca saldrá ya que $a se incrementa antes de comparar'; else echo 'efectivamente ahora $a ya no vale 6 sino '.$a.'<br>'; ?>
- Operadores
- El código anterior genera la siguiente salida
$a que vale 6 dice que vale 5 ???? Esto es por que primero compara y luego incrementa ahora $a vale 6 efectivamente ahora $a ya no vale 6 sino 7
Operadores con asignación en una misma variable
- Cuando la variable donde asignamos el resultado de la expresión forma parte de la expresión, la podemos simplificar
- Veamos el siguiente ejemplo
$a=$a*5;
- Es igual que hacer
$a*=5;
- Esto lo podemos hacer con cualquiera de los operadores aritméticos
- operadores comparación (==,<,>,>=,<=,<>,!=,===,!==)
- Este tipo de operadores genera un booleano como resultado de evaluar la expresión
- Operador == Vs ===
$num=1; if ($num==true) echo '$num es igual a true<br>'; if ($num===true){ echo "esto nunca se ejecutará"; }else echo '$num no es exactamente igual a true';
- Operador == vs ===
- El código anterior generaría la siguiente salida
$num es igual a true $num no es exactamente igual a true
- Ver la sección comparación de tipos de la página oficial
http://php.net/manual/es/language.operators.comparison.php
- operadores de concatenacón( .) concatena cadena de caracteres.
- El operador + no está sobre cargado, observa el siguiente código
$nombre="Maria"; $apellido = " de la Oh"; $nombreCompleto = $nombre.$apellido; echo "el valor de nombre completo es $nombreCompleto ---<br>"; $nombreCompleto = $nombre+$apellido; echo "el valor de nombre completo es $nombreCompleto --<br>";
- La salida del código anterior sería
el valor de nombre completo es Maria de la Oh --- el valor de nombre completo es 0 --
- Operadores de asignación (= , =>)
- Se pueden combinar con los aritméticos (+=, *=, ...) y con los de concatenación (.=)
- En este caso el valor de la variable de la izquierda se toma como primero operando
- Operador de asignación
<?php $b=1; for ($a=0;$a<10;$a++){ $b*=10; echo 'valor de $b ='.$b.'<br>'; } ?>
- El código anterior genera la siguiente salida
valor de $b =10 valor de $b =100 valor de $b =1000 valor de $b =10000 valor de $b =100000 valor de $b =1000000 valor de $b =10000000 valor de $b =100000000 valor de $b =1000000000 valor de $b =10000000000
- operadores de ejecución (``)
- PHP proporciona un operador especial que permite ejecutar sentencias
- Observa el siguiente código
<?php $Discos = `df`; echo "<pre>$Discos</pre>"; ?>
- El código anterior generará la siguiente salida
Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda5 86378608 6072360 75895384 8% / none 4 0 4 0% /sys/fs/cgroup udev 4023720 4 4023716 1% /dev tmpfs 806904 1384 805520 1% /run none 5120 0 5120 0% /run/lock none 4034504 6588 4027916 1% /run/shm none 102400 28 102372 1% /run/user /dev/sda7 101797224 40480360 56122728 42% /home
- Invocando funciones del sistema
- El operador anterior (comillas invertidas) es igual que la función shell_exec()
http://php.net/manual/es/function.shell-exec.php
- operadores lógicos (and,&&, or, ||, xor !)
http://php.net/manual/es/language.operators.logical.php
- Funcionan por cortocircuito
- El operador xor da verdad si los operando son de diferente valor uno true y el otro false
- La notación and y && representan el mismo operador, igual ocurre con or y ||
- La diferencia entre los operadores es la prioridad
http://php.net/manual/es/language.operators.precedence.php