Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/Distancia2018/Sintaxis/1»

De WikiEducator
Saltar a: navegación, buscar
Línea 13: Línea 13:
 
<div id=apuntes_distancia>
 
<div id=apuntes_distancia>
  
{{PHP/OperadoresExpresiones}}
+
<div class="slide">
{{PHP/MasSintaxis}}
+
==Operadores y expresiones==
 +
<br />
 +
{{MRM_Objetivos|
 +
;Son partes de las frases de un lenguaje de programación}}
 +
</div>
 +
 
 +
<div class="slide">
 +
===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
 +
;operadores aritméticos (+,-,*,/,%,**, ++, --)
 +
*Retorna un valor numérico
 +
*el ++, -- son valores de autoincremeto y autodecremento, pueder ser pre o post
 +
</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>
 +
</div>
 +
 
 +
<div class="slide">
 +
;Operadores
 +
*El código anterior genera la siguiente salida
 +
<source lang=php>
 +
$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
 +
</source>
 +
</div>
 +
 
 +
<div class="slide">
 +
;operadores comparación (==,<,>,>=,<=,<>,!=,===,!==)
 +
:Este tipo de operadores genera un booleano como resultado de evaluar la expresión
 +
{{MRM_Puntos clave|
 +
*'''''<nowiki>==</nowiki>''''' operador de comparación '''''igual que''''' (mismo valor)
 +
*'''''<nowiki>===</nowiki>''''' operador de comparación '''''exactamente igual que''''' (mismo valor y tipo)
 +
}}
 +
</div>
 +
 
 +
<div class="slide">
 +
;Operador == Vs ===
 +
<source lang=php>
 +
$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';
 +
</source>
 +
</div>
 +
 
 +
<div class="slide">
 +
;Operador == vs ===
 +
 
 +
*El código anterior generaría  la siguiente salida
 +
<source lang=php>
 +
$num es igual a true
 +
$num no es exactamente igual a true
 +
</source>
 +
*Ver la sección '''''comparación de tipos''''' de la página oficial
 +
http://php.net/manual/es/language.operators.comparison.php
 +
</div>
 +
 
 +
<div class="slide">
 +
;operadores de concatenacón( .) concatena cadena de caracteres.
 +
:El operador + no está sobre cargado, observa el siguiente código
 +
<source lang=php>
 +
$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>";
 +
</source>
 +
</div>
 +
 
 +
<div class="slide">
 +
;La salida del código anterior sería
 +
<source lang=php>
 +
el valor de nombre completo es Maria de la Oh ---
 +
el valor de nombre completo es 0 --
 +
</source>
 +
</div>
 +
 
 +
<div class="slide">
 +
;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
 +
<source lang=php>
 +
<?php
 +
$b=1;
 +
for ($a=0;$a<10;$a++){
 +
    $b*=10;
 +
    echo 'valor de $b ='.$b.'<br>';
 +
}
 +
?>
 +
</source>
 +
</div>
 +
 
 +
<div class="slide">
 +
*El código anterior genera la siguiente salida
 +
<source lang=php>
 +
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
 +
</source>
 +
</div>
 +
 
 +
<div class="slide">
 +
;operadores de ejecución (``)
 +
:PHP proporciona un operador especial que permite ejecutar sentencias
 +
*Observa el siguiente código
 +
<source lang=php>
 +
<?php
 +
$Discos = `df`;
 +
echo "<pre>$Discos</pre>";
 +
?>
 +
</source>
 +
</div>
 +
 
 +
<div class="slide">
 +
*El código anterior generará la siguiente salida
 +
<source lang=php>
 +
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
 +
</source>
 +
</div>
 +
 
 +
<div class="slide">
 +
;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
 +
</div>
 +
 
 +
<div class="slide">
 +
;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
 +
</div>
  
  

Revisión de 08:04 22 oct 2018



DWES TituloTema3.gif


Operadores y expresiones



Icon objectives.jpg
Objetivo
Son partes de las frases de un lenguaje de programación

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
operadores aritméticos (+,-,*,/,%,**, ++, --)
  • Retorna un valor numérico
  • el ++, -- son valores de autoincremeto y autodecremento, pueder ser pre o post
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 comparación (==,<,>,>=,<=,<>,!=,===,!==)
Este tipo de operadores genera un booleano como resultado de evaluar la expresión


Icon key points.gif

Puntos clave

  • == operador de comparación igual que (mismo valor)
  • === operador de comparación exactamente igual que (mismo valor y tipo)


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