1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

PHP - Switch

Discussão em 'Web Development' iniciada por Ruanes, 7 de Junho de 2008. (Respostas: 10; Visualizações: 1908)

  1. Ruanes

    Ruanes Power Member

    Oi,

    Alguem me pode mostrar um exemplo de switch com duas variaveis(se for possivel em PHP)
     
  2. shello

    shello Moderador
    Staff Member

    Nunca vi um switch com mais do que uma variável :S

    PHP.net/switch

    Não sei se o que queres é algo como:
    PHP:
    switch ($i) {
    case 
    0:
    case 
    1:
        echo 
    "i <= 1";
        break;
    case 
    2:
        echo 
    "i = 2";
        break;
    }
     
  3. hostmake

    hostmake Power Member

    PHP:
    switch ($i) {
           case 
    0:
    echo 
    "1";
    echo 
    "2";
    echo 
    "3";
    $var "ola";
    $var2 "ola2";
          break;
    }
    Simples.
     
  4. countzero

    countzero Power Member

    Olá,

    PHP:
    <?php

    /* Assumindo que os valores permitidos para as vars são:

       $i: 1, 2, 3, 4
       $j: 1, 2, 3, 5, 6

       As combinações possíveis serão:

       11, 12, 13, 14, 15, 16
       21, 22, 23, 24, 25, 26
       31, 32, 33, 34, 35, 36
       41, 42, 43, 44, 45, 46
    */

    /* Imaginando um exemplo em que $i = 1 e $j = 2;
       A sua combinação será 12
    */
    $i 1;
    $j 2;

    /* Usando o operador de concatenação de strings do PHP:
       http://pt2.php.net/language.operators.string
    */
    $k $i $j;

    switch(
    $k) {
            case 
    11:
                    break;
            case 
    12:
                    echo 
    "i = 1, j = 2";
                    break;
            case 
    13:
                    break;
            case 
    14:
                    break;
            
    /* ... */
            
    case 46:
                    echo 
    "i = 4, j = 6";
                    break;
            default:
                    echo 
    "...";
                    break;
    }
    ?>
    Achas que algo deste género resolve o teu problema? Os valores dados são apenas exemplos e podes, obviamente, utilizar outras combinações :)

    Cumps,
    JP
     
  5. Ruanes

    Ruanes Power Member

    nao era bem isso que eu queria

    quando me referia a duas variaveis referia-me mais ou menos a isto:

    PHP:
    <?php
     
    ...
     
    if (
    $var1=="Ola" && $var2=="Adeus")
    {
    ...
    }
     
    mas em switch
    qualquer coisa como:

    PHP:
     
    switch($var1,$var2)
    {
    case 
    "ola","adeus":
    ...;
    }

    nao sei se isto existe mas é qualquer coisa deste genero
     
  6. hostmake

    hostmake Power Member

    PHP:
    switch ($i) {
    case 
    0:
    case 
    1:
    case 
    2:
        echo 
    "i is less than 3 but not negative";
        break;
    case 
    3:
        echo 
    "i is 3";
    }
    ?>
     
  7. AliFromCairo

    AliFromCairo Power Member

    Boas, isso não existe em PHP.
     
  8. hostmake

    hostmake Power Member

    Acabei de colar um exemplo para fazer isso do site do PHP.
     
  9. MPalhas

    MPalhas Power Member

    não é isso que ele quer. ele quer comparar duas variaveis ao mesmo tempo, e não comparar uma variavel com vários valores

    isso só com um case não existe. podes fazer com um novo case dentro de cada opção do primeiro, ou então com vários if else if, ou até uma mistura dos dois.
     
  10. countzero

    countzero Power Member

    O que eu pretendi mostrar no exemplo, é que, como um switch só permite uma variável, podes concatenar duas variáveis independentes e fazer a comparação baseando-te nisso.

    Ou seja:

    PHP:
    $var1 "ola";
    $var2 "Adeus";
    $var_check $var1 "|" $var2;

    switch(
    $var_check) {
        case 
    "ola|Adeus":
            echo 
    "var1=ola, var2=Adeus";
            break;
    }
    É um "hack" feio, sim. Mas funciona ;)

    Cumps,
    JP
     
    Última edição: 7 de Junho de 2008
  11. Ruanes

    Ruanes Power Member

    obrigado pela ideia counterzero.
     

Partilhar esta Página