|
|
Línea 106: |
Línea 106: |
| | | |
| | | |
− | ;Operadores de expresiones booleanas: | + | ;Operadores de expresiones numércias: |
| + | {{MRM_Puntos clave| |
| + | ;Intervienen con valores numéricos y retorna un número como resultado de su evaluación |
| + | }} |
| #Aritméticos (+,-,*,/,%) | | #Aritméticos (+,-,*,/,%) |
| #Autoincremente/decremento(++ --) | | #Autoincremente/decremento(++ --) |
| #Asignación compuesta (los aritmétcios segidos de una asignación += -= *= ....) | | #Asignación compuesta (los aritmétcios segidos de una asignación += -= *= ....) |
| {{MRM_Puntos clave|title=Valor de retorno| | | {{MRM_Puntos clave|title=Valor de retorno| |
− | ;Estos operadores retorna un valor numérico
| |
| ;Cuando haya varios en una operación, hay que tener cuidado con la preferencia. Mejor esplicitarla con paréntesis}} | | ;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.png}} |
| + | }} |
| + | }} |
| + | |
| + | |
| + | |
| | | |
| *el ++, -- son valores de autoincremeto y autodecremento, pueder ser pre o post | | *el ++, -- son valores de autoincremeto y autodecremento, pueder ser pre o post |
Revisión de 18:14 13 dic 2022
Actividad
- Prueba a hacer un programa que asignas a una variable de tipo string un valor y lo recorres carácter a carácter (Visualizar cada carácter).
Posible solución |
---|
<?php
//Declaro una variable de tipo string
//Y le asignamos un valor
$nombre = "manuel";
//Obtengo la longitud de la cadena
$len = strlen($nombre);
//Recorro desde 0 hasta longitud menos uno <
for ($n=0; $n<$len; $n++)
echo "Carácter $n de $nombre $nombre[$n]<br />";
?>
|
|
Emulamos tirar 6000 veces un dado
- Simulamos con la función rand generar 6000 veces un valor entre 1 y 6
- Mostramos el número de veces que ha salido cada valor (1,2,3,4,5 o 6)
|
Operadores y expresiones
- 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 HABITUALES EN PHP
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
|
OTROS OPERADORES MENOS HABITUALES
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
-
- 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 += -= *= ....)
- Cuando haya varios en una operación, hay que tener cuidado con la preferencia. Mejor esplicitarla con paréntesis
|
Qué ejecutaría el siguiente código
- Mejor ponerlo así
Ejecución |
---|
$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>";
- Salida
Archivo:Salida preferencia.png
|
|
- 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
Usamos Pre o Post, es decir $a++ o ++$a
{{{1}}}
|
- 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 />";
}}
Realiza el siguiente programa Entendiendo qué hace
//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
- 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 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';
- 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