PHP - ¿Por que falla el switch?

 
Vista:

¿Por que falla el switch?

Publicado por Fabian (5 intervenciones) el 30/01/2018 23:14:24
Muy buenas! tengo un switch para que me muestre un icono diferente dependiendo del formato del archivo, en caso de que sea una imagen, que me muestre una miniatura, en caso de un rar el icono de comprimido, etc...
El problema que tengo es que sea el formato que sea me lo interpreta como el primer parametro del switch:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
switch ($formato) {
	case 'png' || 'jpg' || 'gif' || 'ico':
		$imagen = $pathImagen;
		break;
	case 'rar' || 'zip' || 'tar' || 'gz':
		$imagen = "img/ico/comprimido.jpg";
		break;
	case 'mp3':
		$imagen = "img/ico/musica.png";
		break;
	case 'dir':
		$imagen = "img/ico/directorio.png";
		break;
	case 'html' || 'css' || 'js' || 'php':
		$imagen = "img/ico/web.ico";
		break;
	case 'iso':
		$imagen = "img/ico/disco.png";
		break;
	case 'pdf':
		$imagen = "img/ico/pdf.png";
		break;
	default:
		$imagen = "img/ico/fichero.png";
		break;
}

Podria ser por los ||?, espero no tener que poner una linea por cada formato.

Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 603
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

¿Por que falla el switch?

Publicado por Miguel (218 intervenciones) el 31/01/2018 02:29:11
El formato del switch debería ser así:

1
2
3
4
5
6
7
8
9
10
11
12
switch ($formato) {
    case 'jpg':
    case 'png':
        code block A;
        break;
    case 'txt':
        code block B;
        break;
    default:
        code block default;
        break;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar