Ver Mensaje Individual
  #7 (permalink)  
Antiguo 14/01/2014, 14:04
MeDxEc
 
Fecha de Ingreso: mayo-2013
Ubicación: Cúcuta
Mensajes: 98
Antigüedad: 11 años, 6 meses
Puntos: 2
Respuesta: Problema con operadores lógicos

Cita:
Iniciado por pateketrueke Ver Mensaje
Ya lo has dicho tú "a tu parecer", pero tú no eres la ley, la ley es lógica, no tú.

Para empezar isset() devuelve un booleano, por lo tanto tu comparación está mal

Ahora, observa esto:
Código PHP:
Ver original
  1. // MAL
  2. if (isset($nivel) === 'editor' or 'admin')
  3.  
  4. // BIEN
  5. if ($nivel === 'editor' || $nivel === 'admin')

¿Notas las diferencias?
Sí, la ley es lógica y si lees con lógica lo que estaba haciendo le verás el sentido a lo que estoy preguntando ;)


Cita:
Te sugiero leer un manual de programación general pues la precedencia de operadores es importante, además un manual de PHP básico para que tengas opiniones fundamentadas, no solo a tu parecer.
Consulté el manual de PHP, por eso dije que había intentado con los operadores. Mira un ejemplo de lo que te planteo:

$variable = $_POST['variable'];

Esta puede contener dos valores, o "editor" o "admin"

LEELO CON LOGICA, (un poco de pseudocódigo)

If $variable = 'admin' then -> mostrar('usted tiene permisos de editor más los permisos especiales').

If $variable = 'editor' then -> mostrar('usted solo puede editar')

Ahora la comparación:

If $variable es = a 'admin' o 'editor' -> acción

¿Lo leíste con lógica? Bueno, entonces verás que no está mal. Mi error está en la mal utilización del isset, no en la lógica. Coloqué los demás operadores simplemente porque también los estaba usando en el momento, error de despiste.

----

Gracias a los demás que respondieron. El uso que le dí a isset() era para verificar que el campo tuviese contenido y en caso de que no pues mostrara error. Lo pensé pero no era la forma correcta de ejecutarlo así que pido disculpas por mi error de novato.