Mostrando postagens com marcador Operadores. Mostrar todas as postagens
Mostrando postagens com marcador Operadores. Mostrar todas as postagens

Tutorial de PHP: Como Usar o Operador Ternário (?:) - IF/ELSE em 1 Linha

🎯 O que você vai aprender nesta aula:

  • O que é o Operador Ternário (?:).
  • Como transformar blocos gigantes de IF/ELSE em apenas uma linha.
  • Exemplos práticos de uso no dia a dia.
  • Bônus Sênior: Conheça o Operador de Coalescência Nula (??).

Em um tutorial passado do nosso curso de PHP, mencionamos uma verdade absoluta: o bom programador é "preguiçoso". Mas calma, não no sentido pejorativo da palavra! Dizemos isso no sentido de buscar sempre a solução mais simples, eficiente, limpa e direta para um problema.

O que é o Operador Ternário no PHP ( ?: )

Você já deve estar cansado de escrever estruturas condicionais clássicas, que ocupam várias linhas de código no seu arquivo, como esta:

<?php
    if (condicao_for_verdadeira) {
        $resultado = "Faz isso";
    } else {
        $resultado = "Faz aquilo";
    }
?>

Achando que isso era escrever demais para tomar decisões simples, os criadores da linguagem implementaram o Operador Ternário (representado pelos símbolos ?:). Ele é, basicamente, um IF e um ELSE comprimidos em uma única linha!

A Sintaxe do Operador Ternário

A estrutura funciona como uma pergunta e duas respostas possíveis:

teste_condicional ? valor_se_TRUE : valor_se_FALSE;

Ou seja, você faz um teste (uma pergunta). O ponto de interrogação ? avalia isso. Se for verdade, ele retorna o que está imediatamente após a interrogação. Se for falso, ele ignora a primeira opção, pula os dois pontos : e retorna o último valor.

Exemplo 1: Verificação de Idade

Exercício: Crie um script PHP que pede a idade de um usuário. Se for menor de 18, diga que ele ainda não pode dirigir. Se for maior ou igual, avise que ele já pode dirigir. Use o operador ternário.

Veja como o código fica extremamente curto:

<html>
<head>
    <title>Apostila PHP Progressivo</title>
</head>
<body>
    <form action="" method="get">
        Sua Idade: <input type="number" name="age" required />
        <input type="submit" value="Testar" />
    </form> 

<?php 
    if(isset($_GET['age'])) {
        $idade = $_GET['age'];
        
        // A mágica acontece aqui, direto no echo!
        echo ($idade < 18) ? "Você ainda não pode dirigir." : "Você JÁ pode dirigir!";
    }
?>
</body>
</html>

🚀 Escreva menos, programe mais!

A diferença entre um código amador e um código profissional muitas vezes está nos detalhes, como saber a hora certa de usar um operador ternário. Para treinar essas "sacadas" de programação com centenas de exemplos práticos, baixe agora a Apostila PHP Progressivo. Estude no seu ritmo, sem depender da internet!

Baixar Apostila Completa →

Exemplo 2: Sistema de Notas de Aluno

Exercício: Crie um script em PHP que pergunte a média final do aluno. Se for menor que 7, avise que ele foi reprovado. Igual ou acima de 7, ele passou direto.

<html>
<head>
    <title>Apostila PHP Progressivo</title>
</head>
<body>
    <form action="" method="get">
        Média do Aluno: <input type="number" step="0.1" name="media" required />
        <input type="submit" value="Verificar Status" />
    </form> 

<?php 
    if(isset($_GET['media'])) {
        $media = $_GET['media'];
        
        // Salvando o resultado do ternário direto dentro de uma variável
        $status = ($media < 7) ? "Reprovado" : "Aprovado";
        
        echo "<h3>O aluno está: $status</h3>";
    }
?>
</body>
</html>

🔥 Bônus Sênior: O Operador Null Coalescing (??)

Você reparou que nos exemplos usamos isset($_GET['nome_do_campo']) para verificar se o formulário foi enviado antes de tentar usar a variável? Se não fizermos isso, o PHP exibe um erro de "Undefined index".

Nas versões mais recentes do PHP (7+), foi criado um "irmão" mais novo para o operador ternário, focado exatamente nisso: o Operador de Coalescência Nula (??). Ele verifica se algo existe; se existir, ele usa. Se não existir (for nulo), ele usa um valor padrão. Exemplo rápido:


$nome = $_GET['usuario'] ?? 'Visitante Anônimo';

Seu código já está ficando com cara de profissional! Vamos para o próximo desafio?

Continuar Curso (Próxima Aula) »

Operadores de Comparação: ==, ===, !=, !==, <>, >, >=, <, <=

Neste guia definitivo você vai dominar: A lógica por trás de todos os operadores de comparação do PHP, como evitar bugs de segurança com o uso correto de ===, e conhecerá o moderno operador Spaceship para ordenação de dados.

Como funcionam os operadores de comparação no PHP?

Os operadores de comparação servem para analisar dois valores e retornar um resultado booleano (verdadeiro ou falso). Atualmente, a boa prática de programação exige que você entenda não apenas a igualdade de valores (==), mas principalmente a identidade de tipos (===), para evitar que o PHP converta dados automaticamente de forma insegura em suas aplicações.

Para começarmos a criar inteligência em nossos scripts, conheça a lista completa:

  1. == (Igual)
  2. === (Idêntico - Recomendado)
  3. != ou <> (Diferente)
  4. !== (Não idêntico)
  5. >, <, >=, <= (Magnitude)
  6. <=> (Spaceship - O operador moderno)

Operador de igual a (==) vs. Idêntico (===)

Essa é a maior "pegadinha" do PHP. O operador == faz o que chamamos de Type Juggling (malabarismo de tipos). Se você comparar uma string com um número, o PHP tentará converter os dois para que eles se tornem iguais.


<?php 
 // O PHP diz que isso é verdadeiro porque ele converte a string para número antes de comparar
 echo 3 == "3"; // Resultado: 1 (TRUE)
?>

Por que usar o Idêntico (===)?
Em sistemas de segurança ou financeiros, você não quer que o PHP "adivinhe". O operador idêntico verifica se o valor e o tipo de dado são exatamente os mesmos. Atualmente, é a escolha padrão de programadores seniores.


<?php 
 echo 3 === "3"; // Resultado: FALSE (vazio), pois um é inteiro e outro é string.
?>

🚀 Quer acelerar seu aprendizado?

A lógica de comparação pode ser confusa no início. Nossa Apostila PHP Progressivo contém centenas de exercícios práticos para fixar esse conteúdo de vez.

BAIXAR AGORA →

Diferença e Não-Identidade (!= vs !==)

Seguindo a mesma lógica, o != (ou <>) verifica se os valores são diferentes. Já o !== garante que eles sejam diferentes inclusive no tipo.


<?php 
 echo 0 != "0";  // FALSE (o PHP acha que são iguais)
 echo 0 !== "0"; // TRUE (são diferentes, pois um é número e outro é texto)
?>

🌟 Bônus Moderno: O Operador Spaceship (<=>)

Introduzido nas versões mais recentes do PHP, o operador "Nave Espacial" é uma mão na roda para quem precisa ordenar listas. Em vez de retornar apenas TRUE ou FALSE, ele retorna três valores possíveis:

  • 0: Se os valores forem iguais.
  • 1: Se o valor da esquerda for maior.
  • -1: Se o valor da direita for maior.

<?php 
 echo 1 <=> 1; // 0
 echo 2 <=> 1; // 1
 echo 1 <=> 2; // -1
?>

💡 Dica de programador: Use isso em funções de ordenação como usort() para deixar seu código muito mais elegante e rápido.


Comparação de Magnitude (Maior e Menor)

Estes operadores funcionam exatamente como na matemática clássica. São essenciais para validar idades, preços e limites de estoque.

Símbolo O que o PHP entende?
>$a é estritamente MAIOR que $b?
>=$a é MAIOR OU IGUAL a $b?
<$a é estritamente MENOR que $b?
<=$a é MENOR OU IGUAL a $b?

🛠️ Curiosidade Técnica:

O PHP permite comparar strings alfabeticamente usando esses operadores. Por exemplo, "a" < "b" retornará verdadeiro. Isso é muito útil para criar filtros de busca alfabética!

Fonte: Manual Oficial do PHP

Precedência de Operadores em PHP

Neste tutorial de nosso curso PHP Progressivo, vamos aprender o que é a precedência de operadores matemáticos e como ela funciona no desenvolvimento de aplicações web modernas.

🇺🇸 Looking for the English version? Read this article in English.

📚 Domine o PHP Offline!

Gostou da nossa didática? Você pode ter todo esse conteúdo organizado e pronto para consulta rápida na Apostila PHP Progressivo. Ideal para quem quer estudar sem interrupções e com exercícios exclusivos.

QUERO A APOSTILA COMPLETA →

Precedência: O que é?

Quanto é: 1 + 2 * 3?

Se você fizer a soma primeiro, terá 9. Se fizer a multiplicação primeiro, terá 7. Na matemática escolar, aprendemos que a multiplicação tem prioridade. No PHP, a lógica é idêntica, mas com muito mais operadores envolvidos.

O computador é uma máquina de precisão. Ele não pode ter dúvidas; toda expressão deve resultar no mesmo valor, independentemente de onde o código for executado. Para garantir essa consistência, existe a Precedência de Operadores.

Tabela de Precedência no PHP

Abaixo, listamos os principais operadores em ordem de importância (da maior prioridade para a menor). O PHP sempre resolverá o que está no topo primeiro:

Operador Descrição
( ) Parênteses (Máxima Prioridade)
++ -- Incremento e Decremento
! Negação Lógica
* / % Multiplicação, Divisão e Resto
+ - . Soma, Subtração e Concatenação de Strings
< <= > >= Comparação (Menor, Maior, etc)
== != === !== Igualdade e Identidade
&& || Operadores Lógicos "E" e "OU"

Não se preocupe se você ainda não conhece alguns desses símbolos. No decorrer do nosso Curso de PHP, estudaremos cada um deles detalhadamente.

Associatividade: O que acontece se houver empate?

Quando dois operadores têm a mesma prioridade (como a soma e a subtração), o PHP geralmente os resolve da esquerda para a direita. Isso é chamado de associatividade à esquerda.

<?php
    // Soma e Subtração empatam. PHP faz: (10 - 5) + 2 = 7
    echo 10 - 5 + 2; 
?>

O Poder dos Parênteses

Como vimos na tabela, o parênteses é o operador "mais forte". Ele é usado para forçar o PHP a calcular algo fora da ordem padrão. Além disso, ele é uma ferramenta de clareza.

  • 1 + 2 * 3 resulta em 7 (Multiplicação primeiro).
  • (1 + 2) * 3 resulta em 9 (Soma primeiro, devido aos parênteses).

💡 Dica de Programador Sênior:

Mesmo quando a precedência matemática for óbvia, use parênteses em expressões complexas. Isso ajuda outros programadores (ou você mesmo no futuro) a ler o código rapidamente sem precisar "mentalizar" a tabela de precedência.

Exemplo Prático: Calculando Média

Se você quer calcular a média de duas notas, os parênteses são obrigatórios:

<?php
    $nota1 = 7;
    $nota2 = 9;

    // Errado: o PHP dividiria apenas a nota2 por 2 primeiro.
    // $media = $nota1 + $nota2 / 2; 

    // Correto:
    $media = ($nota1 + $nota2) / 2;
    echo "A média é: $media";
?>

Desafio: Exercícios de Precedência

Resolva as expressões abaixo mentalmente (ou criando um script PHP) e digite nos comentários quais resultados você obteve:

  1. ((1 + 2) * 3 - 4) * 5
  2. (6 - 7) * 8 * 9 + 10
  3. (10 + 9 - 8 + 7) * 6

Dúvidas? Deixe seu comentário e vamos aprender juntos!

Variáveis em Perl - O que são e Como Usar

Neste tutorial de Perl, vamos aprender o que são variáveis, para que servem, como funcionam e como usar. Além disso, vamos conhecer o vigil, símbolo $, e o operador de atribuição =
Baixar apostila de Perl em PDF
Fazer download da apostila em PDF


Armazenando Informações em Perl

Quando você seleciona um trecho de um texto em algum editor, você pode colar ele depois quantas vezes quiser. Se o editor ficar ligado 10 anos, você ainda pode colar depois de 10 anos.

Quando você joga um game e perde, ao voltar, você volta pra mesma fase, com o mesmo nível e itens que coletou.

Quando você ouve uma música no celular, para de ouvir, e depois volta a ouvir (não importa quanto tempo depois), você volta no mesmo exato ponto de antes.

E aí, o editor adivinha o que você copiou? O aplicativo de música adivinha que música e onde você parou de ouvir? Óbvio que não, se eles sabem dessas informações é porque elas foram armazenadas, foram salvas, guardadas em algum lugar.

Armazenamento e uso de informações salvas são um dos pilares da programação, e vamos aprender agora, em programação Perl, como armazenar informações para usar no decorrer de nossos scripts.

Futuramente vamos aprender como armazenar valores em arquivos de texto, por exemplo.
Assim, você salva informações que ficarão permanentemente gravadas em sua máquina, mesmo após o término da execução do seu script.

Variável em Perl: como declarar e inicializar

Vamos primeiro aprender a armazenar informações de maneira temporária, ou seja, durante a duração da execução de nossos scripts em Perl, e somente informações do tipo 'escalares' (vamos estudar outros tipos de informações posteriormente, como Hashes e Arrays).

Essa armazenagem de informações é por meio das variáveis.
Variável nada mais é do que isso: um troço que armazena dados.

Toda variável do tipo escalar (como números e strings), tem um nome e começa pelo símbolo $ (vigil). Diferente de outras linguagens, no Perl você não precisa declarar previamente as variáveis, pode ir logo usando elas, sem perda de tempo, e nem precisa dizer que tipo de informação quer armazenar.

Por exemplo, vamos armazenar o número 2112 na variável de nome numero:
  • $numero = 2112;

Pronto, só isso. O símbolo $, um nome, o operador de atribuição (=) e a informação que você desejar armazenar inicialmente.

Mas qual a utilidade disso? Qual o propósito de se usar variáveis em Perl?
Let's descobrir.

Variáveis: Para que servem ?

Quando declaramos uma variável, o Perl vai lá e reserva um bloco na memória do seu computador.
Por exemplo, ele pode reservar o bloco de número: 0x34671FF

Mas poxa, programação é pra ser fácil e simples...ficar usando esse troço de número feio não dá, concorda? E se ao invés de chamarmos 0x34671FF pudéssemos chamar por um nome mais fácil, que a gente escolhe?

Que tal chamar de $numero ?
Toda vez que usarmos a variável $numero, o Perl entende que você tá se referindo ao valor armazenado na posição 0x34671FF da sua memória.

Variável em Perl: Como usar

Declare e inicialize uma variável de nome idade com o valor de sua idade.
Por exemplo:
  • $idade = 20;

Agora vamos fazer um script que imprime na tela o texto: "Você tem [sua idade] anos de idade".
Em Perl, ele fica assim:
#!/usr/bin/perl

$idade=20;
print "Você tem $idade anos de idade\n";
Veja que o não saiu "$idade" na tela, e sim um número.
Ou seja, o Perl interpretou, ele pensa assim:
- "Opa! Aqui tem um troço começando com o símbolo $, então é uma variável...ao invés de imprimir o nome da variável, vou imprimir o valor que ela armazena...deixa eu buscar aqui o que tem lá nesse endereço de memória".

E pimba, ele imprime o número que você armazenou inicialmente na variável:
Curso de Perl online grátis, completo, com apostila para download em PDF

Estamos interpolando strings e variáveis, podemos fazer isso usando o operador de concatenação também:
#!/usr/bin/perl

$age=20;
print "Sua idade é: ".$age."\n";
Note que não precisamos colocar as aspas entre o nome da variável.

Agora vamos armazenar uma string dentro de uma variável.
Coloque seu nome na variável $name, por exemplo:
$name = 'Neil Peart';

Agora um script que te dá bom dia:
#!/usr/bin/perl

$name = 'Neil Peart';
print "Bom dia, $name\n";
Podemos fazer assim também:
#!/usr/bin/perl

$name = 'Neil Peart';
print "Bom dia, ", $name;
E até assim:
#!/usr/bin/perl

$name = 'Bom dia, Neil Peart';
print $name;
Esse Perl é realmente muito flexível, não acha?

Exercícios de variáveis em Perl

"Escreva um script que tem uma variável que armazena um valor numérico qualquer, e exiba o dobro dele."

Vamos armazenar o número 2112 na variável $num.
Na variável $doub, armazenamos o dobro da $num (basta multiplicar essa por dois).

Veja como fica nosso script:
#!/usr/bin/perl

$num = 2112;
$doub = 2 * $num;
print "O dobro de ", $num, " é ", $doub;
"Faça um script que armazena os números 21 e 12 em duas variáveis diferentes e exiba a soma deles"

Vamos armazenar nas variáveis $num1 e $num2, cada valor.
Na variável $soma vamos armazenar a soma ($num1+$num2), veja:
#!/usr/bin/perl

$num1 = 21;
$num2 = 12;
$soma = $num1 + $num2;
print "Soma: $soma";
Você também podia fazer diretamente no print:
#!/usr/bin/perl

$num1 = 21;
$num2 = 12;
print "Soma: ", ($num1+$num2);
A maneira acima é mais eficiente, pois ela declara apenas duas variáveis.
Podemos também usar só uma variável, inicializando  já com a soma diretamente:
#!/usr/bin/perl

$num = 21+12;
print "Soma: $num";
Entende agora porque o lema do Perl é "sempre tem várias maneiras de fazer a mesma coisa" ?

"Escreva um script que inicializa com duas variáveis com dois valores. Em seguida, mostre a soma, subtração, multiplicação, divisão e resto da divisão do primeiro pelo segundo número."

Essa deixamos com vocês, escreva seu script nos comentários.

Strings em Perl

Nesse tutorial de nosso Curso de Perl, vamos começar a trabalhar com as famosas strings.

Baixar apostila de Perl em PDF
Baixar e estudar pela apostila em PDF

Strings em Perl

Strings nada mais são que um grupo de caracteres, por exemplo:
"Perl"
"Perl Progressivo"
"Música 2112"
"Curso Perl Progressivo \n"

A menor string é a vazia: ""
A maior é aquela que completa a memória de sua máquina.

As strings aparecem sempre dentro de aspas, simples ou duplas.

Aspas simples

Tudo que vier dentro de aspas simples, vai ser exibido do jeito que aparece no código, exceto a aspa simples e a barra \

Rode o script a seguir:
#!/usr/bin/perl
print 'Curso Perl Progressivo \n';
O resultado é: Curso Perl Progressivo \n

Ou seja, digitamos o \n e apareceu o \n, ele não foi interpretado como uma quebra de linha.
Para imprimir a barra, faça: \\
Para imprimir uma aspa, faça: \'

O script a seguir exibe uma barra e uma aspa simples:
#!/usr/bin/perl
print '\\ \'';

Aspas duplas

Essa nós já usamos em nosso tutorial sobre Hello, World! e funções print e say.
Se fizermos:
print "Curso Perl Progressivo!\n";

Ela vai interpretar o \n como uma quebra de linha, ao invés de imprimir '\n' na tela.

Usaremos mais aspas duplas quando formos trabalhar com variáveis, em breve em nossa apostila de Perl.

Note que:
print 1+1;
Resulta em 2 na tela.

Já:
print "1+1";
Resulta na tela: 1+1

O primeiro é uma operação matemática com números, o segundo exemplo é uma string.
Entenda bem a diferença! No segundo caso, o número 1 e o operador + são interpretados como caracteres de uma string, são um texto.

Operadores de String em Perl

O primeiro operador que vamos aprender é o de concatenação: .
Sim, um ponto.

Ele serve pra concatenar, 'grudar', unir strings, veja:
print "Perl" . "Progressivo";
(mesmo que "PerlProgressivo")

print "Perl"." " . "Progressivo";
(mesmo que "Perl Progressivo"

print "Perl". " " . "Progressivo"."\n";
(mesmo que "Perl Progressivo\n")

Um outro operador importante, é o de repetição: x
(sim, um x)

Tudo que você usa com ele, se repete, por exemplo:
print "Rush" x 3 ;

O resultado é: RushRushRush

Inclusive isso funciona pra números:
print 4 x 3;
O resultado é: 444