Diferencia entre revisiones de «Plantilla:PHP/OperadoresExpresiones»
De WikiEducator
(→Operadores y expresiones) |
(→Operadores) |
||
(77 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
<div class="slide"> | <div class="slide"> | ||
+ | |||
==Operadores y expresiones== | ==Operadores y expresiones== | ||
<br /> | <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> | ||
Línea 10: | Línea 26: | ||
*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 | *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 '''''pre''''', primero incrementa y luego toma el valor | ||
*El el caso '''''post''''', primero toma el valor y luego incrementa | *El el caso '''''post''''', primero toma el valor y luego incrementa | ||
− | {{MRM_Puntos | + | {{ |
− | ;Para muchos casos es lo mismo hacerlo pre que post | + | 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> | <source lang=php> | ||
$a=5; | $a=5; | ||
Línea 28: | Línea 166: | ||
echo "Valor de a es $a"; | echo "Valor de a es $a"; | ||
</source> | </source> | ||
+ | ;En ambos casos la salida dará el valor 6 | ||
Pero | Pero | ||
<source lang=php> | <source lang=php> | ||
Línea 41: | Línea 180: | ||
</source> | </source> | ||
{{MRM_Pregunta| | {{MRM_Pregunta| | ||
− | + | '''''Lo ves claro''''' | |
+ | }} | ||
}} | }} | ||
− | |||
</div> | </div> | ||
Línea 55: | Línea 194: | ||
//Compáralo con el valor 4 y decrementa en una unidad , muestra información de que no es igual y muestra el 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 | //Analiza la salida y prueba deferentes situaciones | ||
+ | </source> | ||
}} | }} | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
;Operadores | ;Operadores | ||
Línea 84: | 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| | ||
Línea 95: | Línea 251: | ||
<div class="slide"> | <div class="slide"> | ||
− | + | =====Operador == Vs === ===== | |
<source lang=php> | <source lang=php> | ||
$num=1; | $num=1; | ||
Línea 120: | 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 143: | 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 | ||
Línea 175: | 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 | ||
Línea 208: | Línea 364: | ||
<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 |
Ú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