¿De menos sí sabes como funcionan los switch-case?
A diferencia de if-then-else no esperan valores booleanos necesariamente, reciben cualquier valor y los case se encargan de hacer el matching.
Es por eso que una expresión booleana de un if-then-else no tiene el mismo significado en switch-case, pues en switch-case se esperan más de un tipo de valor, no una expresión booleana.
Vamos a ver tus "ejemplos".
Código PHP:
Ver original// ($nombre=='jose', $var!=null, $b<$a)
if ($nombre=='jose') {
} elseif ($var!=null) {
} elseif ($b<$a) {
}
switch (/* ¿aquí cual de las tres expresiones colocarías ? */) {
case /* aquí que tipo de resultado esperarías */
}
¿Verdad que no tiene sentido?
Ahora vamos a tratar de hacer lo mismo con switch-case usando un valor en común, un booleano.
Código PHP:
Ver originalswitch (true) {
case $nombre=='jose'; break;
case $var!=null; break;
case $b<$a; break;
}
Y es exactamente lo mismo que el if-then-else, pero sigo sin ver la "ventaja" más alla del gusto por hacerlo así.
PDTA: Aun sigo tratando de entender lo que dices aquí:
Cita: En general puedo pasar algo N-dimensional a uni-dimensional con este tipo de transformaciones con un costo muy pequeño en tiempo de ejecucion.