Da trilha de PHP Este conceito ainda não saiu como card do dia. ir para o card de hoje

PHP Fundamentos Básico

Operadores

Em PHP, os operadores são símbolos que realizam operações em valores, como comparação, concatenação e coalescência. Neste card, focamos em quatro operadores essenciais: == (igualdade flexível), === (igualdade estrita), <=> (spaceship, comparação de três vias), ?? (null coalescing) e o operador de concatenação . (ponto).

A diferença entre == e === é crucial: == compara apenas os valores após conversão de tipos, enquanto === compara valor e tipo. O operador spaceship <=> retorna -1, 0 ou 1 se o operando da esquerda for menor, igual ou maior que o da direita, respectivamente. Ele é muito útil para ordenação.

O operador ?? (null coalescing) retorna o operando da esquerda se ele existir e não for null, caso contrário retorna o da direita. Já o ponto . concatena strings. Esses operadores são fundamentais para escrever código PHP idiomático e seguro.

Pontos-chave

  • == compara valores com conversão de tipos; === compara valores e tipos sem conversão.
  • <=> retorna -1, 0 ou 1 para indicar se o operando esquerdo é menor, igual ou maior que o direito.
  • ?? retorna o operando esquerdo se ele não for null, senão retorna o direito.
  • O operador . concatena strings, enquanto += pode ser usado para concatenar e atribuir.
  • Use === e !== para evitar surpresas com conversão implícita de tipos.
operadores.php
<?php
// Exemplo de operadores em PHP

// == vs ===
$a = 5;
$b = '5';
var_dump($a == $b);  // true: valores iguais após conversão
var_dump($a === $b); // false: tipos diferentes (int vs string)

// spaceship <=>
var_dump(1 <=> 2); // -1
var_dump(2 <=> 2); // 0
var_dump(3 <=> 2); // 1

// null coalescing ??
$nome = $_GET['nome'] ?? 'Visitante';
echo "Olá, $nome\n";

// concatenação .
$saudacao = 'Olá' . ', ' . 'mundo!';
echo $saudacao . "\n";

// Concatenação com atribuição
$frase = 'PHP';
$frase .= ' é ';
$frase .= 'legal';
echo $frase . "\n";
?>

Exercícios

  1. 1
    Fácil

    Comparação estrita vs flexível

    Crie um script PHP que defina duas variáveis: $x = 10 e $y = '10'. Use var_dump para mostrar o resultado de $x == $y e $x === $y. Depois, use if para verificar se $x === $y e imprimir "Tipos diferentes" caso sejam diferentes, ou "Tipos iguais" caso contrário.

    Resolver
  2. 2
    Médio

    Ordenação com spaceship e null coalescing

    Crie um array de números: [3, 1, 4, 1, 5, 9, 2, 6]. Use a função usort com uma função de comparação que utilize o operador spaceship <=> para ordenar o array em ordem crescente. Depois, use ?? para definir um valor padrão para uma chave inexistente em um array associativo e imprima o resultado. Exiba o array ordenado com print_r.

    Resolver
  3. 3
    Desafio

    Sistema de saudação com operadores

    Crie uma função saudacao($nome, $sobrenome = null) que retorne uma string de saudação. Se $sobrenome for null, use apenas o nome. Use o operador de concatenação . para montar a string. Depois, crie um array de usuários com chaves 'nome' e opcionalmente 'sobrenome'. Itere sobre o array e, para cada usuário, use ?? para obter o sobrenome (se não existir, passe null). Chame a função e imprima as saudações. Além disso, ordene os usuários pelo nome usando usort e <=> e imprima a lista ordenada.

    Resolver

Continue estudando