Diferencia entre revisiones de «Plantilla:PHP/OperadoresExpresiones»
De WikiEducator
(Página creada con «<div class="slide"> ===Operadores=== *Son símbolos que realizan acciones sobre operandos y dan como resultado un valor *Tenmos diferentes tipos de operadores en función...») |
(→Operadores) |
||
(83 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
<div class="slide"> | <div class="slide"> | ||
+ | ==Operadores y expresiones== | ||
+ | <br /> | ||
+ | {{MRM_Definicion|Title=¿Qué es una expresión?| | ||
+ | *Son partes de las frases de un lenguaje de programación | ||
+ | {{MRM_Definicion|Title=Definición| | ||
+ | ;Es un conjunto de operador/es y operando/s | ||
+ | ;que se evalúan | ||
+ | ;y dan como resultado un valor | ||
+ | }} | ||
+ | }} | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | {{MRM_Puntos clave|Title=Notas importantes| | ||
+ | ;Una expresión tiene un tipo asociado | ||
+ | ;En php el tipo lo marca el operador | ||
+ | ;Los operandos se intentan adaptar al tipo | ||
+ | ;No es una instrucción, es parte de ella | ||
+ | }} | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
===Operadores=== | ===Operadores=== | ||
*Son símbolos que realizan acciones sobre operandos y dan como resultado un valor | *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 |
− | ; | + | |
− | * | + | |
− | *el ++, -- son valores de autoincremeto y autodecremento, pueder ser pre o post | + | {|class="wikitable col1cen col2cen center" style="width:auto;" |
+ | |+ style="color:white;background:blue;font-size:1.50em;" |OPERADORES HABITUALES EN PHP | ||
+ | |- | ||
+ | |style="color:white;background:green;" |TIPO DE OPERADOR || OPERADOR || Tipo de Expresión | ||
+ | |- | ||
+ | |style="color:white;background:red;" |Operadores aritméticos || style="color:blue;background:white;" |+ - * / % ** || Numérica | ||
+ | |- | ||
+ | |style="color:white;background:red;" |Operadores lógicos || style="color:blue;background:white;" |AND OR && <nowiki>||</nowiki> ! || Lógica | ||
+ | |- | ||
+ | |style="color:white;background:red;" |Operadores de comparación || style="color:blue;background:white;" |== != << < > <= >= <=> ?? || Lógica | ||
+ | |- | ||
+ | |style="color:white;background:red;" |Operadores de auto incremento/decremento || style="color:blue;background:white;" |++$a $a++ --$a $a-- || Numérica | ||
+ | |- | ||
+ | |style="color:white;background:red;" |Operadores de string: concatenación || style="color:blue;background:white;" |. .= || String | ||
+ | |} | ||
+ | |||
+ | {|class="wikitable col1cen col2cen center" style="width:auto" | ||
+ | |+ style="color:white;background:blue;"font-size:1.50em;|OTROS OPERADORES MENOS HABITUALES | ||
+ | |- | ||
+ | |style="color:white;background:green;" |TIPO DE OPERADOR || OPERADOR || Tipo de Expresión | ||
+ | |- | ||
+ | |style="color:white;background:red;"|Operadores asignación simple||style="color:blue;background:white;"|= || valor asignado | ||
+ | |- | ||
+ | |style="color:white;background:red;"|Operadores asignación compuesta||style="color:blue;background:white;"|+= *= -= %= **= .= ||numérico | ||
+ | |- | ||
+ | |style="color:white;background:red;"|Operadores asignación por referenica||style="color:blue;background:white;"|&||Valor referenciado | ||
+ | |- | ||
+ | |style="color:white;background:red;"|Operadores bit a bit||style="color:blue;background:white;"|& | ^ ~ << >> ||numérico | ||
+ | |- | ||
+ | |style="color:white;background:red;"|Operador de control de errors||style="color:blue;background:white;"|@||no retorna, anula comunicaicón de errores si se produjeran | ||
+ | |- | ||
+ | |style="color:white;background:red;font-size: 1.50em;"|Operador de ejecución||style="color:blue;background:white;"|``||resultado del comando ejecutado | ||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | ====Operadores de expresiones numéricas==== | ||
+ | <br /> | ||
+ | {{MRM_Puntos clave| | ||
+ | ;Intervienen con valores numéricos y retorna un número como resultado de su evaluación | ||
+ | }} | ||
+ | #Aritméticos (+,-,*,/,%,**) | ||
+ | #Autoincremente/decremento(++ --) | ||
+ | #Asignación compuesta (los aritmétcios segidos de una asignación += -= *= ....) | ||
+ | |||
+ | {{MRM_Puntos clave|title=Valor de retorno| | ||
+ | ===== 1.- Operadores aritméticos===== | ||
+ | <br /> | ||
+ | ;Cuando haya varios en una operación, hay que tener cuidado con la preferencia. Mejor esplicitarla con paréntesis}} | ||
+ | {{MRM_Pregunta|Title=Qué ejecutaría el siguiente código| | ||
+ | <source lang=php> | ||
+ | $num = 5+6*8-4/2; | ||
+ | </source> | ||
+ | ;Mejor ponerlo así | ||
+ | <source lang=php> | ||
+ | $num = 5+(6*8)-(4/2); | ||
+ | </source> | ||
+ | {{Plegable|hide|Ejecución| | ||
+ | <source lang=php> | ||
+ | $num = 5+6*8-4/2; | ||
+ | echo "<h1>Valor de número $num</h1>"; | ||
+ | $num = 5+(6*8)-(4/2); | ||
+ | $num = 5+48-2; | ||
+ | $num = 53-2; | ||
+ | echo "<h1>Valor de número $num</h1>"; | ||
+ | </source> | ||
+ | ;Salida | ||
+ | [[Archivo:salida_preferencia_1.png]] | ||
+ | }} | ||
+ | }} | ||
+ | <br /> | ||
+ | *El operador quizá menos utilizado es el <span class=r>módulo(%) y el exponente(**)</span>. | ||
+ | {{Nota|El módulo se usa mucho para ver si un número es o no divisible por otro.}} | ||
+ | |||
+ | {{MRM_Actividad| | ||
+ | ;Buscar todos los números divisibles por 3 del 1 al 100 | ||
+ | |||
+ | {{Plegable|hide|Posible solución| | ||
+ | <source lang=php> | ||
+ | $lista = null; | ||
+ | for($n=1; $n<=100; $n++){ | ||
+ | if ($n%3==0) | ||
+ | $lista.="$n, "; | ||
+ | } | ||
+ | echo "<h1>$lista</h1>"; | ||
+ | </source> | ||
+ | ;Salida | ||
+ | [[Archivo:salida_multiplos_3.png]] | ||
+ | }} | ||
+ | |||
+ | |||
+ | {{Nota|En el ejemplo anterior, al final sale una coma de más, que ya veremos cómo quitarla.}} | ||
+ | }} | ||
+ | |||
+ | ;El exponente consiste en elevar un número a otro | ||
+ | {{MRM_Actividad| | ||
+ | ;Obtenerlo las diferentes potencias de 2 hasta elevarlo a 15: 2<sup>1</sup> 2<sup>2</sup> 2<sup>3</sup>...2<sup>15</sup> | ||
+ | {{Plegable|hide|Posible solución| | ||
+ | <source lang=php> | ||
+ | for($n=1; $n<=15; $n++){ | ||
+ | echo "2<sup>$n</sup>=".(2**$n)."<br />"; | ||
+ | } | ||
+ | </source> | ||
+ | ;Salida | ||
+ | [[Archivo:salida_potencias_2.png]] | ||
+ | }} | ||
+ | }} | ||
+ | <br /> | ||
+ | =====Autoincremente / Decremento ===== | ||
+ | *el <span class=r>++, --</span> son valores de autoincremeto y autodecremento, pueder ser <span class=r>pre o post</span> | ||
+ | *El el caso '''''pre''''', primero incrementa y luego toma el valor | ||
+ | *El el caso '''''post''''', primero toma el valor y luego incrementa | ||
+ | {{ | ||
+ | MRM_Puntos clave|Title: forma de usar los operadores | ||
+ | ;Pre es anteponiendo el operador | ||
+ | <source lang=php> | ||
+ | ++$a; | ||
+ | --$a | ||
+ | </source> | ||
+ | :Post es posponiéndolo | ||
+ | <source lang=php> | ||
+ | $a++; | ||
+ | $a--; | ||
+ | </source> | ||
+ | }} | ||
+ | <br /> | ||
+ | ;Para muchos casos es lo mismo hacerlo pre que post. Esto ocurre <span class=r>cuando en la instrucción solo haga eso</span> | ||
+ | <source lang=php> | ||
+ | $a=5; | ||
+ | $a++; | ||
+ | echo "Valor de a es $a"; | ||
+ | </source> | ||
+ | Es igual que | ||
+ | <source lang=php> | ||
+ | $a=5; | ||
+ | ++$a; | ||
+ | echo "Valor de a es $a"; | ||
+ | </source> | ||
+ | ;En ambos casos la salida dará el valor 6 | ||
+ | Pero | ||
+ | <source lang=php> | ||
+ | $a=5; | ||
+ | echo "Valor de a es ".++$a."<br />"; | ||
+ | echo "Valor de a es $a<br />"; | ||
+ | </source> | ||
+ | No es igual que | ||
+ | <source lang=php> | ||
+ | $a=5; | ||
+ | echo "Valor de a es ".$a++."<br />"; | ||
+ | echo "Valor de a es $a<br />"; | ||
+ | </source> | ||
+ | {{MRM_Pregunta| | ||
+ | '''''Lo ves claro''''' | ||
+ | }} | ||
+ | }} | ||
</div> | </div> | ||
+ | |||
+ | {{MRM_Actividad|Title=Realiza el siguiente programa Entendiendo qué hace| | ||
+ | <source lang=php> | ||
+ | //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 | ||
+ | </source> | ||
+ | }} | ||
<div class="slide"> | <div class="slide"> | ||
Línea 37: | Línea 225: | ||
</source> | </source> | ||
</div> | </div> | ||
+ | |||
+ | ====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 | ||
+ | <source lang=php> | ||
+ | $a=$a*5; | ||
+ | </source> | ||
+ | *Es igual que hacer | ||
+ | <source lang=php> | ||
+ | $a*=5; | ||
+ | </source> | ||
+ | *Esto lo podemos hacer con cualquiera de los operadores aritméticos | ||
+ | |||
+ | |||
+ | |||
<div class="slide"> | <div class="slide"> | ||
− | + | ====Operadores comparación (==,<,>,>=,<=,<>,!=,===,!==)==== | |
:Este tipo de operadores genera un booleano como resultado de evaluar la expresión | :Este tipo de operadores genera un booleano como resultado de evaluar la expresión | ||
{{MRM_Puntos clave| | {{MRM_Puntos clave| | ||
− | *'''''==''''' operador de | + | *'''''<nowiki>==</nowiki>''''' operador de comparación '''''igual que''''' (mismo valor) |
− | *'''''===''''' operador de | + | *'''''<nowiki>===</nowiki>''''' operador de comparación '''''exactamente igual que''''' (mismo valor y tipo) |
}} | }} | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
− | + | =====Operador == Vs === ===== | |
<source lang=php> | <source lang=php> | ||
$num=1; | $num=1; | ||
Línea 73: | Línea 276: | ||
<div class="slide"> | <div class="slide"> | ||
− | + | ====operadores de concatenacón( .) concatena cadena de caracteres.==== | |
:El operador + no está sobre cargado, observa el siguiente código | :El operador + no está sobre cargado, observa el siguiente código | ||
<source lang=php> | <source lang=php> | ||
Línea 96: | Línea 299: | ||
<div class="slide"> | <div class="slide"> | ||
− | + | ====Operadores de asignación (= , =>)==== | |
:Se pueden combinar con los aritméticos (+=, *=, ...) y con los de concatenació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 | :En este caso el valor de la variable de la izquierda se toma como primero operando | ||
− | ;Operador de | + | ;Operador de asignación |
<source lang=php> | <source lang=php> | ||
<?php | <?php | ||
Línea 128: | Línea 331: | ||
<div class="slide"> | <div class="slide"> | ||
− | + | ==== Operadores de ejecución (``)==== | |
:PHP proporciona un operador especial que permite ejecutar sentencias | :PHP proporciona un operador especial que permite ejecutar sentencias | ||
*Observa el siguiente código | *Observa el siguiente código | ||
− | |||
<source lang=php> | <source lang=php> | ||
<?php | <?php | ||
Línea 141: | Línea 343: | ||
<div class="slide"> | <div class="slide"> | ||
− | |||
*El código anterior generará la siguiente salida | *El código anterior generará la siguiente salida | ||
<source lang=php> | <source lang=php> | ||
Línea 158: | Línea 359: | ||
<div class="slide"> | <div class="slide"> | ||
;Invocando funciones del sistema | ;Invocando funciones del sistema | ||
− | *El operador anterior (comillas invertidas) es igual que la | + | *El operador anterior (comillas invertidas) es igual que la función '''''shell_exec()''''' |
http://php.net/manual/es/function.shell-exec.php | http://php.net/manual/es/function.shell-exec.php | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
− | + | ==== Operadores lógicos (and,&&, or, ||, xor !)==== | |
http://php.net/manual/es/language.operators.logical.php | http://php.net/manual/es/language.operators.logical.php | ||
:Funcionan por cortocircuito | :Funcionan por cortocircuito | ||
Línea 170: | Línea 371: | ||
*La diferencia entre los operadores es la prioridad | *La diferencia entre los operadores es la prioridad | ||
http://php.net/manual/es/language.operators.precedence.php | http://php.net/manual/es/language.operators.precedence.php | ||
+ | </div> |
Última revisión de 06:27 28 oct 2024
//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 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