Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
DanyelNak

[Resolvido] Case - php

Recommended Posts

Boa Tarde,

quando eu faco mais que um CASE eu tenho que fechar todos?

Por exemplo:


case "a":
case "b":

"código"

break;

só preciso dar um break, ou tenho que dar os dois break?

Valewww

Compartilhar este post


Link para o post
Compartilhar em outros sites

você precisa seguir a estrutura certa do switch case.

exemplo:

testaCase.php


<?php

$opcao $_POST["radio"]

switch($opcao){

case "a": echo "escolheu a opção A";
break;
case "b": echo "escolheu a opção B";
break;
case "c": echo "escolheu a opção C":
break;
default: echo "nenhuma das alternativas foram escolhidas";

}

?>


<form action="testaCase.php" method="post">
<ul>
<li><input type="radio" name="radio" value="a">A</li>
<li><input type="radio" name="radio" value="b">B</li>
<li><input type="radio" name="radio" value="c">C</li>
<li><input type="radio" name="radio" value="d">D</li>
</ul>
<input type="submit" value="testar Switch case"/>
</form


Nao levei em conta a estilizaçao com css nesse formulario.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O break não é necessariamente obrigatório.. e sim, você pode deixar linhas em branco conforme seu exemplo acima. Não precisa colocar break em todos..

A existência do break está relacionada a forma que o switch case trata a condição.. pois ele só trata a condição uma vez e então ele executará todos os códigos a partir do momento em que um case passar na condição.. mas não executará a condição novamente (ignorando os outros cases). Por isso é utilizado o break..

Isso pode ser lido na própria documentação do PHP:

http://php.net/manual/en/control-structures.switch.php (inglês)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, muito obrigado pelas respostas,

Então eu só peguei a parte dos case, porque é o que eu precisava para dar o exemplo,

então eu posso usar do jeito que usei para fechar os meus Cases? usando apenas um break?

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem.. segundo o post do lucas.. sim .. mas pelo que eu aprendi na faculdade.. a clausula break serve para parar a execuçao... então se você tem varios cases e neles so pode haver uma execuçao em especifico.. o break seriviria para isso.

a impressao que tenho é que enquanto você nao declara um break.. ele vai executando o case "a".. o case "b".. e aí por diante ate encontrar um break e parar.

no caso do seu exemplo e pelo site que lucas postou.. serviria caso você queria que eles façam o mesmo codigo antes de parar

o case é equivalente ao bloco de if - else , else if.. por exemplo:


if (variavel == "a" ){
faz alguma coisa

}else if(variavel == "b"){
faz outra cois diferente
}

traduzindo isso.. pra ifs no seu exemplo o que me dá impressao é que seria isso:


if((variavel == "a") && (variavel == "b")){
faz alguma coisa
}

posso ta totalmente errado.. mas é essa a impressao que me dá. da uma olhada no link que o lucas postou.. é do proprio manual..

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim.. a ideia é essa mesmo: Após algum case passar na condição, todos os códigos (dos outros cases - mesmo que não passem a condição) serão executados.. isso porque a condição só é verificada uma vez.

Então se você não quiser executar todos os códigos é necessário parar o case com um break sim. E sim, você pode (e deve - na maioria dos casos) fechar seu case com break!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×