No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Precedencia de operadores

20/24
Recursos

Aportes 21

Preguntas 7

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

No me da pena decir que llevo programando en PHP por 2 años, y estaba convencido de que eso daba false si o si, nunca me había dado false en el tiempo que llevo programando imagino por la costumbre de siempre colocar los paréntesis. Excelente clase.

La Precedencia de Operadores nos sirve para decidir qué pasará?, en qué orden?, cuando estamos programando. Para que funcione primero incializamos la variable y luego le asignas la funcion que debe realizar, es decir, por ejemplo, primero le das le valor de cero a la variable y luego le dices que le sume 1 cada vez que haga un ciclo

Los paréntesis son mi pastor, entonces. Con ellos se soluciona todo

Una observación. La documentación de PHP es muy clara al respecto: primero se respeta la precedencia, después la asociatividad cuando la precedencia de los operadores está en el mismo nivel.

Por ejemplo, * tiene mayor precedencia que +, aún cuando ambas tienen asociatividad izquierda. De tal forma que algo como esto:

<?php

echo $res = 5 + 2 * 3;

Dará como resultado 11, porque primero hace el producto (2 * 3) y después lo suma a 5.

Otro ejemplo es el de and y &&, en donde la operación “falla” si se le pone and pero será exitosa si se le coloca &&.

<?php

$gato_tiene_4_patas = true;
$gato_programa_PHP  = false;

$resultado = $gato_tiene_4_patas and $gato_programa_PHP;
echo 'Gato tiene 4 patas Y programa en PHP: ';
var_export($resultado);
echo "\n";

$resultado = $gato_tiene_4_patas && $gato_programa_PHP;
echo 'Gato tiene 4 patas && programa en PHP: ';
var_export($resultado);
echo "\n";

En términos prácticos, hay que tomar la tabla de precedencia de PHP primero de arriba hacia abajo y luego según su asociatividad.

Recientemente tuve problemas con una condicional al usar “and”. No había tenido en cuenta la precedencia y que mi problema se resolvía encapsulado entre paréntesis =(.

La precedencia de un operador indica qué tan “estrechamente” se unen dos expresiones juntas.

Quisiera que me explicaran de otra forma el ejemplo del operador and, porque no logro entender del todo aunque vea el video varias veces ya. El mismo ejemplo pero con otras palabras.
Entiendo que la variable $resultado perse está almacenando true, pero toda la instrucción es false.

dios este man enseña muy bien

Excelente clase!!!

La verdad uno delos mejores profe que he visto, en diferentes plataformas, explica en detalle y su forma de explicar es excelente. Gracias Profe.

Pensé que ya se te había olvidado que teníamos pendiente el ejemplo de por que daba true el and de ese ejemplo de los michis jaja
Bastante interesante este tema, muchas gracias por aclararlo

¡Me encantó esta clase!

ufff corri a ver si esto aplicaba en c#,
y por suerte no aplica 😄

Estaba experimentando con la precedencia de operadores de comparación y probé los siguiente:

<?php


var_dump (1<=1 <=> 7);

echo "\n";

El resultado por consola fue int(0), el motivo creo que es que primero evalúa si 1 es menor o igual a 1 (true), y después realiza una comparación con el operador de nave espacial entre true y 7. Como son distintos tipos de datos, automáticamente se evalúan los dos como boolean, y como 7 devuelve true, finalmente queda: true<=>true, lo cual devuelve 0 porque son equivalentes.

<?php

$contador = 1;
$resultado = $contador++;

echo “\n”;

echo “Siendo:\ncontador = 1\nresultado = contador++\n”;

echo “El resultado del contador++ es: $resultado”;

echo “\n”;
echo “\n”;

echo "La suma de 1 - 2 - 3 es: ";
echo 1 - 2 - 3;

echo “\n”;
echo “\n”;

$c = 10;

$a = $b = $c;

echo “Esta ecuación:\nc = 10 \na = b = c\nDa como resultado: $a”;

echo “\n”;
echo “\n”;

$michis_4_patas = true;
$michis_programan_con_PHP = false;

$resultado = $michis_4_patas and $michis_programan_con_PHP;

echo “Siendo michis_4_patas = true\n”;
echo “michis_programan_con_php = false\n”;
echo “\n”;
echo “El resultado sin paréntesis de ‘michis_4_patas and michis_programan_con_php’ es:\n”;

var_dump( $resultado );

echo “\n”;
echo “\n”;

$resultado2 = ($michis_4_patas and $michis_programan_con_PHP);

echo “\n”;

echo “El resultado con paréntesis de ‘(michis_4_patas and michis_programan_con_php)’ es:\n”;

echo “\n”;

var_dump( $resultado2 );

echo “\n”;

$contador = 0;
//Esta linea
$nuevo_valor = $contador++;

//Es igual a 
$nuevo_valor = $contador;
$contador = $contador + 1;

Muy buen aporte para tener en cuenta a la hora de programar

Muy interesante.

Ya entiendo porque hay tanta gente que odia PHP, pero basicamente todo se resuelve al tener buenas practicas, aunque no deja de ser bastante tricky.

AQUI ES MUY IMPORTANTE SABER LA PRECEDENCIA MATEMATICA

En el caso de la resta lo que realmente esta aplicando es la precencia Matematica…
Recordad que podemos agrupar sumas y restas para llegar al valor minimo una vez que tenemos ese valor quien sea mas granade positivos o negativos es conforme se hace la operacion
Ejemplo
5 + 2 + 3 -2 -1 -2 +6

RESOLVEMOS POR GRUPOS POSITIVOS Y NEGATIVOS

(5+2+3+6) = 16 → POSITIVOS

(-2-1-2) = -5 → NEGATIVOS

QUIEN ES MAS GRANDE? R= LOS POSITIVOS, POR LO TANTO AL 16 POSITIVO LE VAMOS A RESTA 5 NEGATIVOS

EL RESULTADO FINAL ES 11 POSITIVOS

La Precedencia en PHP es el orden en el que las operaciones aritméticas irán calculándose. La documentación oficial de PHP muestra el orden de esta.