|
|
Línea 255: |
Línea 255: |
| | | |
| ===Operadores de Asignación=== | | ===Operadores de Asignación=== |
| + | |
| + | {| class="wikitable" |
| + | |+ style=" color:blue; font-size:1.25em;" | '''Tabla de Operadores de Asignación en PHP''' |
| + | |- |
| + | ! style="background:#0066CC; color:white;" | '''Categoría''' || '''Operador''' || '''Ejemplo''' || '''Descripción''' |
| + | |- |
| + | | style="background:#E6F0FF;" | Asignación básica || = || <source lang=php>$x = 10;</source> || Asigna el valor de la derecha a la variable de la izquierda. |
| + | |- |
| + | | style="background:#FFFFFF;" | Asignación básica (arrays) || => || <source lang=php>$array = ["clave" => "valor"];</source> || Asigna un valor a una clave en un array asociativo. |
| + | |- |
| + | | style="background:#E6F0FF;" | Asignación por referencia || & || <source lang=php>$y = &$x;</source> || Asigna una referencia a otra variable, ambas apuntan al mismo valor. |
| + | |- |
| + | | style="background:#FFFFFF;" | Asignación compuesta || += || <source lang=php>$x += 5;</source> || Suma 5 al valor de $x y asigna el resultado a $x. |
| + | |- |
| + | | style="background:#E6F0FF;" | Asignación compuesta || -= || <source lang=php>$x -= 3;</source> || Resta 3 al valor de $x y asigna el resultado a $x. |
| + | |- |
| + | | style="background:#FFFFFF;" | Asignación compuesta || *= || <source lang=php>$x *= 2;</source> || Multiplica $x por 2 y asigna el resultado a $x. |
| + | |- |
| + | | style="background:#E6F0FF;" | Asignación compuesta || /= || <source lang=php>$x /= 4;</source> || Divide $x entre 4 y asigna el resultado a $x. |
| + | |- |
| + | | style="background:#FFFFFF;" | Asignación compuesta || %= || <source lang=php>$x %= 3;</source> || Asigna a $x el resto de la división de $x entre 3. |
| + | |- |
| + | | style="background:#E6F0FF;" | Asignación compuesta (concatenación) || .= || <source lang=php>$y .= " mundo";</source> || Concatena " mundo" al valor de $y y asigna el resultado a $y. |
| + | |- |
| + | | style="background:#FFFFFF;" | Asignación compuesta (exponenciación) || **= || <source lang=php>$x **= 3;</source> || Eleva $x a la potencia de 3 y asigna el resultado a $x. |
| + | |} |
| | | |
| Los '''operadores de asignación''' permiten asignar un valor a una variable. Existen dos tipos principales: | | Los '''operadores de asignación''' permiten asignar un valor a una variable. Existen dos tipos principales: |
Revisión de 22:03 28 nov 2024
Contenido
- 1 Operadores y expresiones
- 1.1 Operadores
- 1.2 Precedencia de Operadores en PHP
- 1.3 Tabla de Precedencia de Operadores
- 1.4 Operadores Aritméticos
- 1.5 Operadores de Incremento y Decremento
- 1.6 Operadores de Asignación
- 1.7 Resumen
- 1.8 Actividad Práctica
- 1.8.1 Operadores con asignación en una misma variable
- 1.8.2 Operadores comparación (==,<,>,>=,<=,<>,!=,===,!==)
- 1.8.3 operadores de concatenacón( .) concatena cadena de caracteres.
- 1.8.4 Operadores de asignación (= , =>)
- 1.8.5 Operadores de ejecución (``)
- 1.8.6 Operadores lógicos (and,&&, or, ||, xor !)
Operadores y expresiones
¿Qué es una expresión?
Una expresión es una parte esencial de las frases en un lenguaje de programación.
|
Definición técnica de expresión
- Es un conjunto de operadores y operandos
- que, al evaluarse, producen un valor.
- Este valor puede ser usado dentro de otras instrucciones o asignado a variables.
|
Notas importantes sobre expresiones en PHP
- Una expresión tiene un tipo asociado. Este tipo depende del resultado de su evaluación.
- En PHP, el operador determina el tipo de la expresión en muchos casos.
- Los operandos intentan adaptarse al tipo esperado por el operador mediante conversiones automáticas (casting implícito).
- Una expresión no es una instrucción completa, sino parte de ella. Por ejemplo:
//Instruccion:
$resultado = 5+3;
// Expresión => 5+3
// Operador => +
// Operandos => el 5 y el 3
// Resultado => 8
//Tipo de expresión => Aritmética, lo marca el operador
|
(: Las expresiones son piezas fundamentales en cualquier lenguaje de programación. Es importante identificar sus partes (operadores y operandos) para entender cómo funciona el código.
)
Operadores
Los operadores son símbolos que realizan acciones sobre operandos y generan un resultado.
Existen diferentes tipos de operadores en función del tipo de operandos y el resultado esperado.
OPERADORES HABITUALES EN PHP
Tipo de Operador |
Operador |
Tipo de Expresión
|
Operadores aritméticos |
+ - * / % ** |
Numérica
|
Operadores lógicos |
AND OR && || ! |
Lógica
|
Operadores de comparación |
== != < > <= >= <=> ?? |
Lógica
|
Operadores de auto incremento/decremento |
++$a $a++ --$a $a-- |
Numérica o String
|
Operadores de string (concatenación) |
. .= |
String
|
OTROS OPERADORES MENOS HABITUALES
Tipo de Operador |
Operador |
Tipo de Expresión
|
Operadores de asignación simple |
= |
Valor asignado
|
Operadores de asignación compuesta |
+= -= *= /= %= **= .= |
Numérica
|
Operadores de asignación por referencia |
& |
Valor referenciado
|
Operadores bit a bit |
& | ^ ~ << >> |
Numérica
|
Operador de control de errores |
@ |
Silencia errores
|
Operador de ejecución |
`comando` |
Resultado del comando ejecutado
|
- Notas importantes
-
- Algunos operadores, como los de control de errores (@), deben usarse con cuidado, ya que pueden ocultar errores importantes en el código.
- Los operadores de asignación compuesta permiten realizar operaciones y asignar el resultado en un solo paso.
- El operador de ejecución (` `) se utiliza para ejecutar comandos del sistema y devolver su salida.
|
Precedencia de Operadores en PHP
- La precedencia de los operadores define el orden en que se evalúan cuando hay múltiples operadores en una expresión.
- Sigue las reglas básicas de las matemáticas:
- La multiplicación y división tienen mayor prioridad que la suma y la resta.
- Los paréntesis siempre tienen la mayor precedencia.
- Cuando varios operadores tienen la misma precedencia, la asociatividad determina cómo se agrupan:
- Ejemplo (asociatividad izquierda): `1 + 2 + 3` se evalúa como `(1 + 2) + 3`.
- Ejemplo (asociatividad derecha): `$x = $y = $z` se evalúa como `$x = ($y = $z)`.
- Algunos operadores no tienen asociatividad y no pueden combinarse directamente.
- Ejemplo incorrecto: `1 < 2 > 1`.
Nota importante: Usar paréntesis puede hacer que las expresiones sean más legibles, aunque no sean necesarios.
Tabla de Precedencia de Operadores
Precedencia y Asociatividad de Operadores en PHP
Asociatividad |
Operadores
|
No asociativo |
`clone`, `new`
|
Izquierda |
`[`
|
Derecha |
`**`
|
Derecha |
`++`, `--`, `~`, `(int)`, `(float)`, `(string)`, `(array)`, `(object)`, `(bool)`, `@`
|
No asociativo |
`instanceof`
|
Derecha |
`!`
|
Izquierda |
`*`, `/`, `%`
|
Izquierda |
`+`, `-`, `.`
|
Izquierda |
`<<`, `>>`
|
No asociativo |
`<`, `<=`, `>`, `>=`
|
No asociativo |
`==`, `!=`, `===`, `!==`, `<>`
|
Izquierda |
`&`
|
Izquierda |
`^`
|
Izquierda |
`
|
Izquierda |
`&&`
|
Izquierda |
` |
`
|
Izquierda |
`?:`
|
Derecha |
`=`, `+=`, `-=`, `*=`, `**=`, `/=`, `.=`, `%=`, `&=`, `/=`, `^=`, `<<=`, `>>=`, `=>`
|
Izquierda |
`and`
|
Izquierda |
`xor`
|
Izquierda |
`or`
|
Izquierda |
`,`
|
Operadores Aritméticos
Los operadores aritméticos en PHP son similares a los de las matemáticas y realizan operaciones básicas.
Operadores Aritméticos
Operación |
Representación |
Descripción
|
Suma |
|
Devuelve la suma de $x y $y.
|
Resta |
|
Devuelve la diferencia entre $x y $y.
|
Multiplicación |
|
Devuelve el producto de $x y $y.
|
División |
|
Devuelve el cociente de $x dividido por $y. Si ambos son divisibles, devuelve un entero; de lo contrario, un flotante.
|
Módulo |
|
Devuelve el resto de dividir $x entre $y. Si $x o $y son flotantes, se transforman en enteros antes de la operación.
|
Exponenciación |
|
Eleva $x a la potencia de $y.
|
Negación |
|
Cambia el signo de $x.
|
Notas importantes:
- En módulo, el signo del resultado dependerá del dividendo.
Ejemplo:
devolverá
.
- El exponente eleva un número a otro. Ejemplo: devolverá .
Ejemplos Prácticos
1. Preferencia de Operadores:
$num = 5 + 6 * 8 - 4 / 2;
// Mejor usar paréntesis para mayor claridad:
$num = 5 + (6 * 8) - (4 / 2);
Ejecución paso a paso:
$num = 5 + 48 - 2;
$num = 53 - 2;
$num = 51;
2. Uso del módulo:
Actividad
- Buscar los números divisibles por 3 entre 1 y 100.
Posible solución |
---|
for ($n = 1; $n <= 100; $n++) {
if ($n % 3 == 0) {
echo "$n, ";
}
}
- Salida
- Números divisibles por 3 con una coma al final.
|
|
3. Exponenciación:
Actividad
- Calcular las potencias de 2 del 1 al 15
-
Posible solución |
---|
for ($n = 1; $n <= 15; $n++) {
echo "2^$n = " . (2 ** $n) . "<br />";
}
|
|
---
Operadores de Incremento y Decremento
Los operadores de incremento y decremento permiten aumentar o reducir en 1 el valor de una variable.
Incremento y Decremento
Tipo |
Representación |
Descripción
|
Pre-incremento |
|
Incrementa el valor de $a antes de usarlo.
|
Post-incremento |
|
Usa el valor de $a y luego lo incrementa.
|
Pre-decremento |
|
Decrementa el valor de $a antes de usarlo.
|
Post-decremento |
|
Usa el valor de $a y luego lo decrementa.
|
Ejemplo de Diferencias entre Pre y Post:
// Pre-incremento
$a = 5;
echo "Pre-incremento: " . ++$a; // Muestra 6
// Post-incremento
$a = 5;
echo "Post-incremento: " . $a++; // Muestra 5
echo "Nuevo valor: " . $a; // Muestra 6
(: Cuando los operadores de incremento/decremento están en una instrucción más compleja, su posición (pre o post) puede afectar el resultado.)
Operadores de Asignación
Tabla de Operadores de Asignación en PHP
Categoría |
Operador |
Ejemplo |
Descripción
|
Asignación básica |
= |
|
Asigna el valor de la derecha a la variable de la izquierda.
|
Asignación básica (arrays) |
=> |
$array = ["clave" => "valor"]; |
Asigna un valor a una clave en un array asociativo.
|
Asignación por referencia |
& |
|
Asigna una referencia a otra variable, ambas apuntan al mismo valor.
|
Asignación compuesta |
+= |
|
Suma 5 al valor de $x y asigna el resultado a $x.
|
Asignación compuesta |
-= |
|
Resta 3 al valor de $x y asigna el resultado a $x.
|
Asignación compuesta |
*= |
|
Multiplica $x por 2 y asigna el resultado a $x.
|
Asignación compuesta |
/= |
|
Divide $x entre 4 y asigna el resultado a $x.
|
Asignación compuesta |
%= |
|
Asigna a $x el resto de la división de $x entre 3.
|
Asignación compuesta (concatenación) |
.= |
|
Concatena " mundo" al valor de $y y asigna el resultado a $y.
|
Asignación compuesta (exponenciación) |
**= |
|
Eleva $x a la potencia de 3 y asigna el resultado a $x.
|
Los operadores de asignación permiten asignar un valor a una variable. Existen dos tipos principales:
- Básicos: Usan el operador "=" para asignar un valor.
- Combinados Combina un operador aritmético o de concatenación con la asignación. Siempre van precedidos por el punto antes de la operador antes de la asignación.
Operador de Asignación Básico
El operador "=" asigna un valor, pero no actúa como un igual matemático. La asignación retorna el valor que se asignó.
Por ejemplo:
//Simple curiosidad que tiene consecuencias en las estructuras de control
$x = 3;
// La expresión $x = 3 tiene un valor de 3
echo $x; // Mostrará: 3
En el caso de los **arrays**, el operador "=>" se utiliza para asignar valores a claves nombradas:
$array = ["clave1" => "valor1", "clave2" => "valor2"];
echo $array["clave1"]; // Mostrará: valor1
Operadores de Asignación Combinados
Los operadores de asignación combinados permiten realizar una operación y asignar el resultado a la misma variable en un solo paso.
Ejemplo básico:
$x = 3;
$x += 5; // Suma 5 a $x,
$x=$x+3; //Esto es la misma acción que la instrucción anterior
echo $x; // Mostrará: 8
Esto es equivalente a:
Otros operadores combinados:
$y = "Hola";
$y .= ", ¿Qué tal?"; // Concatenación
echo $y; // Mostrará: Hola, ¿Qué tal?
Ejemplo con Operadores de Asignación Combinados
$b = 1;
for ($a = 0; $a < 10; $a++) {
$b *= 10; // Multiplica $b por 10 en cada iteración
echo "Valor de \$b = " . $b . "<br>";
}
Salida del código anterior:
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
Asignación por Referencia
La asignación por referencia permite que dos variables apunten al mismo valor, sin crear copias. Esto se realiza con el operador "&".
Ejemplo:
$x = 3;
$y = &$x; // $y apunta a la misma referencia que $x
echo "$x, $y"; // Mostrará: 3, 3
$x = 5;
echo "$x, $y"; // Mostrará: 5, 5
(: Las referencias son similares a un alias o acceso directo en el sistema de archivos.)
Resumen
- Los operadores básicos asignan valores directamente.
- Los operadores combinados simplifican las expresiones cuando la misma variable participa en la operación.
- La asignación por referencia permite que múltiples variables compartan un mismo valor sin duplicarlo.
Actividad Práctica
Objetivo: Practicar con operadores de asignación básicos, combinados y por referencia.
1. Escribe un programa que utilice al menos dos operadores básicos y dos combinados.
2. Implementa un ejemplo de asignación por referencia.
3. Evalúa el resultado e incluye una breve explicación.
Plantilla de Ejemplo:
<?php
// 1. Operadores básicos
$x = 10;
$y = "Hola";
// 2. Operadores combinados
$x += 5; // $x es ahora 15
$y .= ", ¿Qué tal?"; // $y es ahora "Hola, ¿Qué tal?"
// 3. Asignación por referencia
$z = &$x; // $z apunta a la misma referencia que $x
$z = 20; // Cambiar $z también afecta a $x
// Muestra los resultados
echo "Valor de x: $x\n"; // Debería mostrar 20
echo "Valor de y: $y\n"; // Debería mostrar "Hola, ¿Qué tal?"
echo "Valor de z: $z\n"; // Debería mostrar 20
?>
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