Ver Mensaje Individual
  #5 (permalink)  
Antiguo 23/01/2006, 13:04
califa010
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 18 años, 3 meses
Puntos: 5
No sé si es eso lo que buscás, pero si lo que querés es que TODO el switch se ejecute sólo una vez podrías hacer algo así:

Código PHP:

$ejecutar_switch 
true;


if (
$ejecutar_switch == true) {
    
$ejecutar_switch false
    switch(
$variable) {
        case 
1:
            
// hacer algo
            
break;
        case 
2:
            
// hacer otra cosa
            
break;
        default:
            
// opcíón por defecto
            
break;
    }

Antes de entrar al switch se fija si el valor de $ejecutar_switch es true. La primera vez que llegues a este punto, va a ser así. Pero al entrar, "bloquea" el switch al pasar $ejecutar_switch a false. No va a volver a entrar (a menos que cambies nuevamente este valor).

Un ejemplo con un while (pero sería más o menos lo mismo si suás una función a la que podrías llamar desde distintos lugares; lo único es que $ejecutar_switch tiene que estar declarado fuera de la función o del switch):
Código:
$ejecutar_switch = true;
$i = 0;
while ($i<2) {
	if ($ejecutar_switch == true) {
		$ejecutar_switch = false; // va a entrar sólo una vez; 
		echo "test, dentro del switch";
		switch($variable) {
			case 1:
				// hacer algo
				break;
			case 2:
				// hacer otra cosa
				break;
			default:
				// opcíón por defecto
				break;
		}
	}
	$i++;
}
Suerte

Última edición por califa010; 23/01/2006 a las 17:30