Me he encontrado con un uso interesante de || operador en un comando de retorno, y agradecería que si alguien puede confirmar exactamente lo que está pasando (si lo entiendo, lo puedo usar mi mismo en el futuro)Confirmación de uso de OR (||) en un comando de retorno
El código es
return ( empty($neededRole) || strcasecmp($role, 'admin') == 0 || strcasecmp($role, $neededRole) == 0 );
$ neededRole y el papel $ son o nula, 'admin' o 'administrador'
lo estoy leyendo como:
Si $neededRole
está vacía, no se necesitan más controles. Devuelva verdadero (y deje de verificar)
Si ($role == 'admin')
permite el acceso, sin importar el rol requerido. Devuelva verdadero (y deje de verificar)
si ($role == $neededRole)
luego permita el acceso. Devuelve verdadero (y deja de verificar)
Supongo que al llegar a un 'verdadero' que la comprobación se detiene, y si llegó al final de la línea sin tener un 'verdadero', se establecerá como falso.
¿Estoy cerca de la marca?
olvidó añadir, si hay un nombre para esta técnica, me gustaría saber para leer más en este tema –