Diferencia entre revisiones de «Plantilla:PHP/Expresiones»

De WikiEducator
Saltar a: navegación, buscar
(Expresiones Booleanas)
(Expresiones y operadores)
 
(16 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
===Expresión===
+
==Expresiones y operadores==
 
<br />
 
<br />
 
{{MRM_Definicion|Title=Qué es una expresión|
 
{{MRM_Definicion|Title=Qué es una expresión|
Línea 24: Línea 24:
 
! width="200 px" |Resultado
 
! width="200 px" |Resultado
 
|-
 
|-
||+$a
+
|+$a
 
|Identidad
 
|Identidad
 
|Conversión de $a a int o float según el caso.
 
|Conversión de $a a int o float según el caso.
Línea 56: Línea 56:
 
|Resultado de elevar $a a la potencia $bésima.
 
|Resultado de elevar $a a la potencia $bésima.
 
|}
 
|}
 +
 +
;Operadores unarios
 +
*Son operadores que actúan sobre un único valor
 +
 +
{| class="wikitable"
 +
|+ style="background:DarkSlateBlue; color:white; text-align:center;"|'''Expresión aritmética con operadores unarios'''
 +
|- style="background:Lavender; color:black"
 +
! width="60 px" |Operador
 +
! width="100 px" |Nombre
 +
! width="200 px" |Resultado
 +
 +
|-
 +
| ++$a
 +
|Pre-incremento
 +
|Incrementa $a en uno, y luego retorna $a.
 +
|-
 +
|$a++
 +
|Post-incremento
 +
|Retorna $a, y luego incrementa $a en uno.
 +
|-
 +
| --$a
 +
|Pre-decremento
 +
|Decrementa $a en uno, luego retorna $a.
 +
|-
 +
|$a--
 +
|Post-decremento
 +
|Retorna $a, luego decrementa $a en uno.
 +
|}
 +
;Mira el siguiente código  entiéndelo
 +
<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>
 +
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 class="slide">
 +
;Operadores
 +
<source lang=php>
 +
$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>';
 +
?>
 +
</source>
 +
 +
 +
===Expresiones de cadenas===
 +
*Sólo presenta un operador que se utiliza para juntar dos cadenas
 +
*Con este tipo de valores, es importante recordar la gran cantidad de funciones disponibles que realizan operaciones sobre ellas
 +
{| class="wikitable"
 +
|+ style="background:DarkSlateBlue; color:white; text-align:center;"|'''Expresión aritmética con operadores unarios'''
 +
|- style="background:Lavender; color:black"
 +
! width="60 px" |Operador
 +
! width="100 px" |Nombre
 +
! width="200 px" |Resultado
 +
|-
 +
| '''''"Hola". " Caracola "'''''
 +
|Concatenar
 +
|Retorna  la cadena formada por la unión de ambas
 +
|}
 +
 +
===Expresión de asignación===
 +
*Puede parecer extraño ver '''''una instrucción de asignación''''' como una expresión de asignación. Esto ocurre, por que en php el valor asignado es devuelto por la expresión.
 +
{| class="wikitable"
 +
|+ style="background:DarkSlateBlue; color:white; text-align:center;"|'''Expresión aritmética con operadores unarios'''
 +
|- style="background:Lavender; color:black"
 +
! width="60 px" |Operador
 +
! width="100 px" |Nombre
 +
! width="200 px" |Resultado
 +
|-
 +
| $a = 10
 +
| Asiganación
 +
| La variable recibe el valor asignado y éste es devuelto por la expresión
 +
|}
 +
*Es muy importante ver que este operador se puede utilizar con otros, de forma que la variable que recibe el valor asignado interviene como primer operando en la asignación.
 +
Así tenemos los siguentes ejemplos
 +
<source lang= php>
 +
$a = 4;
 +
$a+=5; // $a = $a+5
 +
$a-=45; // $a = $a-4
 +
$a*=45; // $a = $a*4
 +
$a/=45; // $a = $a/4
 +
 +
 +
$texto ="Hola caracola";
 +
$texto .=" y más texto que añado"; $texto = $texto . " y más texto que añado"
 +
 +
</source>
 +
 
===Expresiones Booleanas===
 
===Expresiones Booleanas===
*De ellas se va a obtener un valor booleano
+
*De ellas se va a obtener un valor booleano,
 
*Pueden ser de dos tipos: de comparación o lógicas
 
*Pueden ser de dos tipos: de comparación o lógicas
 
*En las expresiones de comparación deben de intervernir dos valores del mismo tipo
 
*En las expresiones de comparación deben de intervernir dos valores del mismo tipo
Línea 65: Línea 184:
 
|+ style="background:DarkSlateBlue; color:white; text-align:center;"|'''Expresión de comparación'''
 
|+ style="background:DarkSlateBlue; color:white; text-align:center;"|'''Expresión de comparación'''
 
|- style="background:Lavender; color:black"
 
|- style="background:Lavender; color:black"
! width="60 px" |Operador
+
! width="100 px" |Operador
 
! width="100 px" |Nombre
 
! width="100 px" |Nombre
! width="200 px" |Resultado
+
! width="400 px" |Resultado
 
|-
 
|-
 
|$a == $b
 
|$a == $b
|Igual
+
|'''''Igual'''''
 
|true si $a es igual a $b después de la manipulación de tipos.
 
|true si $a es igual a $b después de la manipulación de tipos.
 
|-
 
|-
 
|$a === $b
 
|$a === $b
|Idéntico
+
|'''''Idéntico'''''
 
|true si $a es igual a $b, y son del mismo tipo.
 
|true si $a es igual a $b, y son del mismo tipo.
  
 
|-
 
|-
 
|$a != $b o  
 
|$a != $b o  
|Diferente
+
|'''''Diferente'''''
 
|true si $a no es igual a $b después de la manipulación de tipos.
 
|true si $a no es igual a $b después de la manipulación de tipos.
 
|-
 
|-
 
|-$a !== $b
 
|-$a !== $b
|No idéntico
+
|'''''No idéntico'''''
 
|true si $a no es igual a $b, o si no son del mismo tipo.
 
|true si $a no es igual a $b, o si no son del mismo tipo.
 
|-
 
|-
 
|$a < $b
 
|$a < $b
|Menor que
+
|'''''Menor que'''''
 
|true si $a es estrictamente menor que $b.
 
|true si $a es estrictamente menor que $b.
 
|-
 
|-
 
|$a > $b
 
|$a > $b
|Mayor que
+
|'''''Mayor que'''''
 
|true si $a es estrictamente mayor que $b.
 
|true si $a es estrictamente mayor que $b.
 
|-
 
|-
 
|$a <= $b
 
|$a <= $b
|Menor o igual que
+
|'''''Menor o igual que'''''
 
|true si $a es menor o igual que $b.
 
|true si $a es menor o igual que $b.
 
|-
 
|-
 
|$a >= $b
 
|$a >= $b
|Mayor o igual que
+
|'''''Mayor o igual que'''''
 
|true si $a es mayor o igual que $b.
 
|true si $a es mayor o igual que $b.
 
|-
 
|-
 +
|}
 +
 +
 +
{| class="wikitable"
 +
|+ style="background:DarkSlateBlue; color:white; text-align:center;"|'''Expresión de comparación que no retorna booleano'''
 +
|- style="background:Lavender; color:black"
 +
! width="100 px" |Operador
 +
! width="100 px" |Nombre
 +
! width="400 px" |Resultado
 +
|-
 +
 
|$a <=> $b
 
|$a <=> $b
|Nave espacial
+
|'''''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.
 
|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.
 
|-
 
|-
 
|$a ?? $b ?? $c
 
|$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.
+
|'''''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.
 
|}
 
|}
 +
;Operadores lógicos
 +
 +
{| class="wikitable"
 +
|+ style="background:DarkSlateBlue; color:white; text-align:center;"|'''Expresión lógicas'''
 +
|- style="background:Lavender; color:black"
 +
! width="100 px" |Operador
 +
! width="100 px" |Nombre
 +
! width="400 px" |Resultado
 +
|-
 +
|$a and $b
 +
|'''''And (y)'''''
 +
|true si tanto $a como $b son true.
 +
|-
 +
|$a or $b
 +
|'''''Or (o inclusivo)'''''
 +
|true si cualquiera de $a o $b es true.
 +
|-
 +
|$a xor $b
 +
|'''''Xor (o exclusivo)'''''
 +
|true si $a o $b es true, pero no ambos.
 +
|-
 +
|! $a
 +
|'''''Not (no)'''''
 +
|true si $a no es true.
 +
|-
 +
|$a && $b
 +
|'''''And (y)''''' true si tanto $a como $b son true.
 +
|-
 +
|$a || $b
 +
|'''''Or (o inclusivo)''''' true si cualquiera de $a o $b es true.
 +
|}
 +
===Otros operadores===
 +
*En php existen otros operadores cuya evaluación no retorna un valor concreto, si no que tiene una acción definia
 +
;Operador de referencia
 +
;'''''&'''''
 +
*Con este operador conseguimos obtener una referencia en memoria de una variable, por lo que, después de aplicarlo, podemos realizar acceso a esa posición de memoria con difenten identificador. Esta característica se conoce como '''''Aliasing''''' y no todos los lenguajes de programación la presentan
 +
 +
<source lang=php>
 +
$a = 10;
 +
$b = &$a;
 +
$b = 20;  //Ahora tanto $a, como $b  valen 20
 +
echo "\$a vale $a y \$b vale $b"; //mostrará $a vale 20 y $b vale 20
 +
</source>
 +
;Operador de ejecución
 +
;'''''``'''''
 +
*Está formado por comillas inclinadas
 +
*Con este operador vamos a conseguir que se ejecute este comando en la máquina servidor y veremos el resultado de su ejecución
 +
 +
<source lang=php>
 +
$listado = `ls -la`;
 +
 +
echo $listado;
 +
</source>

Última revisión de 18:51 20 dic 2021

Expresiones y operadores



Icon define.gif
Qué es una expresión
  • Una expresión es un conjunto de operandos (valores) unidos con una serie de operadores
  • que tras ser evaluados se obtiene un valor


  • En función del tipo de operador/es, la expresión será de un tipo u otro
  • Es importante recordar que php es un lenguaje orientado a las expresiones, por lo que el tipo de operador indica el tipo de exprsión

Tipo de expresiones

Expresiones aritméticas o numéricas
Expresiones booleans
Expresiones de cadena o string

Expresiones aritméticas

  • De ellas se va a obtener un valor numérico
Expresión aritmética
Operador Nombre Resultado
$a
Identidad Conversión de $a a int o float según el caso.
-$a Negación Opuesto de $a.
$a + $b Suma de $a y $b.
$a - $b Sustracción Diferencia de $a y $b.
$a * $b Multiplicación Producto de $a y $b.
$a / $b División Cociente de $a y $b.
$a % $b Módulo Resto de $a dividido por $b.
$a ** $b Exponenciación Resultado de elevar $a a la potencia $bésima.
Operadores unarios
  • Son operadores que actúan sobre un único valor
Expresión aritmética con operadores unarios
Operador Nombre Resultado
++$a Pre-incremento Incrementa $a en uno, y luego retorna $a.
$a++ Post-incremento Retorna $a, y luego incrementa $a en uno.
--$a Pre-decremento Decrementa $a en uno, luego retorna $a.
$a-- Post-decremento Retorna $a, luego decrementa $a en uno.
Mira el siguiente código entiéndelo
$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 />";



Icon qmark.gif
Pregunta
Lo ves claro


}} </div>

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>';
?>


Expresiones de cadenas

  • Sólo presenta un operador que se utiliza para juntar dos cadenas
  • Con este tipo de valores, es importante recordar la gran cantidad de funciones disponibles que realizan operaciones sobre ellas
Expresión aritmética con operadores unarios
Operador Nombre Resultado
"Hola". " Caracola " Concatenar Retorna la cadena formada por la unión de ambas

Expresión de asignación

  • Puede parecer extraño ver una instrucción de asignación como una expresión de asignación. Esto ocurre, por que en php el valor asignado es devuelto por la expresión.
Expresión aritmética con operadores unarios
Operador Nombre Resultado
$a = 10 Asiganación La variable recibe el valor asignado y éste es devuelto por la expresión
  • Es muy importante ver que este operador se puede utilizar con otros, de forma que la variable que recibe el valor asignado interviene como primer operando en la asignación.

Así tenemos los siguentes ejemplos

$a = 4;
$a+=5; // $a = $a+5
$a-=45; // $a = $a-4
$a*=45; // $a = $a*4
$a/=45; // $a = $a/4
 
 
$texto ="Hola caracola";
$texto .=" y más texto que añado"; $texto = $texto . " y más texto que añado"

Expresiones Booleanas

  • De ellas se va a obtener un valor booleano,
  • Pueden ser de dos tipos: de comparación o lógicas
  • En las expresiones de comparación deben de intervernir dos valores del mismo tipo
  • En las expresiones lógicas, deben de intervenir dos valores booleanos.
Expresión de comparación
Operador Nombre Resultado
$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 o Diferente true si $a no es igual a $b después de la manipulación de tipos.
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.


Expresión de comparación que no retorna booleano
Operador Nombre Resultado
$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.
$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.
Operadores lógicos
Expresión lógicas
Operador Nombre Resultado
$a and $b And (y) true si tanto $a como $b son true.
$a or $b Or (o inclusivo) true si cualquiera de $a o $b es true.
$a xor $b Xor (o exclusivo) true si $a o $b es true, pero no ambos.
! $a Not (no) true si $a no es true.
$a && $b And (y) true si tanto $a como $b son true.
$a $b Or (o inclusivo) true si cualquiera de $a o $b es true.

Otros operadores

  • En php existen otros operadores cuya evaluación no retorna un valor concreto, si no que tiene una acción definia
Operador de referencia
&
  • Con este operador conseguimos obtener una referencia en memoria de una variable, por lo que, después de aplicarlo, podemos realizar acceso a esa posición de memoria con difenten identificador. Esta característica se conoce como Aliasing y no todos los lenguajes de programación la presentan
$a = 10;
$b = &$a;
$b = 20;  //Ahora tanto $a, como $b  valen 20
echo "\$a vale $a y \$b vale $b"; //mostrará $a vale 20 y $b vale 20
Operador de ejecución
``
  • Está formado por comillas inclinadas
  • Con este operador vamos a conseguir que se ejecute este comando en la máquina servidor y veremos el resultado de su ejecución
$listado = `ls -la`;
 
echo $listado;