Aprenda PHP

  • Página Inicial
  • Contato!
  • Tudo sobre PHP Parte 1!
  • Tudo sobre PHP Parte 2!
  • Tudo sobre PHP Parte 3!
  • Tudo sobre PHP Parte 4!
  • Tudo sobre PHP Parte 5!
  • Tudo sobre PHP Parte 6!
  • Tudo sobre PHP Parte 3

    Estrutura condicional If e Else

    O condicional simples é feito apenas com a declaração if (significando "se") é usado para especificar um bloco de código que deverá ser executado, ao retornar true. O condicional composto é feito com o if junto com o else (significando "senão"). O else se usa para executar um segundo bloco de código ao retornar false. Existe ainda o condicional composto alinhando, que entre o if e o else tem o else if. O else if executa um segundo código ao if retornar false, antes de executar o else.

    No PHP, se usa muito o operador ternário, mas em certos casos é necessário usar o condicional if e else, como podemos usar os dois juntos. Veja um exemplo:

    Código HTML:

    
    <form method="get" action="testes.php">
        Ano de Nascimento: <input type="number" name="ano" min="1900" max="2017" value="1900"/>
        <input type="submit" value="Verificar"/>
    </form>
    
    

    PHP na segunda página:

    
    $ano = isset($_GET["ano"]) ? (int)$_GET["ano"] : 1990;
    $idade = date("Y") - $ano;
    echo "Você nasceu em $ano e tem $idade.<br/>";
    if($idade >= 18) {
        $v = "já pode votar";
        $d = "já pode dirigir";
    }
    else {
        $v = "não pode votar";
        $d = "não pode dirigir";
    }
    echo "Com essa idade você $v e $d.";
    
    

    Mas vamos considerar a situação de que existe votos opcionais, podemos usar condições aninhadas para resolver isso no condicional (que são condições dentro das outras), dessa forma:

    
    $ano = isset($_GET["ano"]) ? (int)$_GET["ano"] : 1990;
    $idade = date("Y") - $ano;
    echo "Você nasceu em $ano e tem $idade.<br/>";
    if($idade < 16) {
        $tipoVoto = "não vota";
    }
    else {
        if(($idade >= 16 && $idade < 18) || ($idade > 70)) {
            $tipoVoto = "voto opcional";
        }
        else {
            $tipoVoto = "voto obrigatório";
        }
    }
    echo "Com essa idade, $tipoVoto.";
    
    

    Podemos simplificar essa opção usando o else if, assim:

    
    $ano = isset($_GET["ano"]) ? (int)$_GET["ano"] : 1990;
    $idade = date("Y") - $ano;
    echo "Você nasceu em $ano e tem $idade.<br/>";
    if($idade < 16) {
        $tipoVoto = "não vota";
    }
    else if(($idade >= 16 && $idade < 18) || ($idade > 70)) {
        $tipoVoto = "voto opcional";
    }
    else {
        $tipoVoto = "voto obrigatório";
    }
    echo "Com essa idade, $tipoVoto.";
    
    

    Agora vamos ver um exemplo calculando a média de duas notas de um aluno:

    HTML na primeira página:

    
    <form method="get" action="testes.php">
        Nota 1: <input type="number" name="n1" min="0" max="10" value="0"/>
        Nota 1: <input type="number" name="n2" min="0" max="10" value="0"/>
        <input type="submit" value="Calcular Média"/>
    </form>
    
    

    PHP na segunda página:

    
    $n1 = isset($_GET["n1"]) ? (float)$_GET["n1"] : 0;
    $n2 = isset($_GET["n2"]) ? (float)$_GET["n2"] : 0;
    $m = ($n1 + $n2) / 2;
    if($m >= 8) {
        $nota = "<span style='color: green'>APROVADO! PARABÉNS!</span>";
    }
    else if($m >= 5 && $m < 8) {
        $nota = "<span style='color: yellow'>EM RECUPERAÇÃO!</span>";
    }
    else {
        $nota = "<span style='color: red'>REPROVADO!</span>";
    }
    echo "A sua média é de $m.<br/>";
    echo "Sua Situação: $nota";
    
    

    Estrutura Condicional Switch e Case

    A declaração condicional switch (chaveamento) é usada quando é preciso realizar diferentes ações baseadas em distintas condições. Pra simplificar o código, geralmente se usa no lugar de um condicional aninhado.

    O case é o valor comparado com a expressão, se corresponder, o código associado será executado. O break garante que a estrutura seja finaliza ao encontrar uma correspondência. E o default é o bloco de códigos que será executado se nenhum caso corresponder à expressão.

    Veja que depois do case e do default, nesse caso, se usa dois pontos :, e que ele diferencia minúsculas e maiúsculas, veja um exemplo de estrutura condicional:

    HTML na primeira página:

    
    <form method="get" action="testes.php">
        Número: <input type="number" name="num" value="0"/>
        <fieldset style="width: 300px">
            <legend>Operação</legend>
            <input type="radio" name="oper" id="dobro" value="1" checked/>Dobro
            <input type="radio" name="oper" id="cubo" value="2"/>Cubo
            <input type="radio" name="oper" id="raiz" value="3"/>Raiz
        </fieldset>
        <input type="submit" value="Calcular"/>
    </form>
    
    

    PHP na segunda página:

    
    $n = isset($_GET["num"]) ? (int)$_GET["num"] : 0;
    $o = isset($_GET["oper"]) ? (int)$_GET["oper"] : 1;
    switch($o) {
        case 1:
            $r = $n * 2;
            break;
        case 2:
            $r = pow($n, 3);
            break;
        case 3:
            $r = sqrt($n);
            break;
        default:
            $r = "Operação Inválida";
            break;
    }
    echo "O resultado da operação solicitada foi <b>$r</b>."
    
    

    O case só suporta um valor, no entanto, quando queremos citar mais de um caso, podemos fazer algo como nesse exemplo:

    HTML:

    
    <form method="get" action="testes.php">
        Dia da Semana: <input type="number" name="ds" min="1" max="7" value="2"/>
        <input type="submit" value="Analisar"/>
    </form>
    
    

    PHP na segunda página:

    
    $d = isset($_GET["ds"]) ? (int)$_GET["ds"] : 0;
    switch($d) {
        case 2:
        case 3:
        case 4:
        case 5:
        case 6:
            echo "É Dia de Estudar!";
            break;
        case 1:
        case 7:
            echo "É Dia de Descansar!";
            break;
        default:
            echo "Dia Inválido!";
            break;
    }
    
    

    Agora vamos criar um formulário com select para selecionar os estados e verificar em qual região do Brasil ele fica. Coloque as siglas referentes às regiões no value de cada option.

    Esse é o HTML da primeira página:

    
    <form method="get" action="testes.php">
        Estado:
        <select name="est">
            <option value="NO">Acre</option> 
            <option value="NE">Alagoas</option>
            <option value="NO">Amapá</option>
            <option value="NO">Amazonas</option>
            <option value="NE">Bahia</option>
            <option value="NE">Ceará</option>
            <option value="CO">Distrito Federal</option>
            <option value="SE">Espírito Santo</option>
            <option value="CO">Goiás</option>
            <option value="NE">Maranhão</option>
            <option value="CO">Mato Grosso</option>
            <option value="CO">Mato Grosso do Sul</option>
            <option value="SE">Minas Gerais</option>
            <option value="NO">Pará</option>
            <option value="NE">Paraíba</option>
            <option value="SU">Paraná</option>
            <option value="NE">Pernambuco</option>
            <option value="NE">Piauí</option>
            <option value="SE">Rio de Janeiro</option>
            <option value="NE">Rio Grande do Norte</option>
            <option value="SU">Rio Grande do Sul</option>
            <option value="NO">Rondônia</option> 
            <option value="NO">Roraima</option>
            <option value="SU">Santa Catarina</option>
            <option value="SE" selected>São Paulo</option>
            <option value="NE">Sergipe</option>
            <option value="NO">Tocantins</option>
        </select>
        <input type="submit" value="Verificar"/>
    </form>
    
    

    E esse é o PHP da segunda página:

    
    $est = isset($_GET["est"]) ? $_GET["est"] : null;
    switch($est) {
        case "NO":
            $reg = "Região Norte";
            break;
        case "NE":
            $reg = "Região Nordeste";
            break;
        case "CO":
            $reg = "Região Centro-Oeste";
            break;
        case "SE":
            $reg = "Região Sudeste";
            break;
        case "SU":
            $reg = "Região Sul";
            break;
        default:
            $reg = "Região Desconhecida";
            break;
    }
    echo "O estado solicitado fica na $reg";