I know the value of the variable, but the switch only goes to the default

7

After a search, I get the following result:

           // O resultado desta linha é I ou II ou III;
           echo $subsecao;

           // O resultado desta linha é string;
           echo gettype($subsecao);

           // Faço um switch para atribuir um caso, mas, retorna apenas o default;

          switch ($subsecao){
            case "I":
              $subsecao = "1";
              break;
            case "II":
              $subsecao = "2";
              break;
            case "III":
              $subsecao = "3";
              break;    
           default:
              $subsecao = "Não encontrou";
          }

           // O resultado desta linha é "Não encontrou";
           echo $subsecao;

           // O resultado desta linha é string;
           echo gettype($subsecao);

Why does switch not work with this scenario?

    
asked by anonymous 22.04.2015 / 14:55

2 answers

3

Try using:

(trim(strip_tags($subsecao)))

This code removes all HTML tags and removes all left and right spaces from the function return, obs: using strip_tags in MAL formatted HTML can remove more or less text from what should be taken, there is an unofficial implementation in this Link that is more efficient.

    
22.04.2015 / 15:46
10

I tested it and it works fine as you can see in this example so the problem must be in the input that is passed to $subsecao; .

Make echo "::$subsecao::"; to verify that the input is correct.

  

Note: As I said very well @NovoK can use trim function.   to remove spaces trim($subsecao);

    
22.04.2015 / 15:09