Fundamentos do PHP

0/25 aulas0%
pratica

Explorando funções nativas do PHP (string, array, math)

Aprenda sobre explorando funções nativas do php (string, array, math)

45 min
Aula 3 de 5

Fundamentos do PHP: Módulo 3 - Funções Nativas (string, array, math)

Olá, futuro desenvolvedor PHP! 👋 Nesta aula prática, vamos mergulhar no vasto universo das funções nativas do PHP. O PHP vem com uma biblioteca enorme de funções prontas para uso, que nos permitem realizar tarefas comuns de forma eficiente e segura, sem reinventar a roda.

Dominar essas funções é crucial para escrever código PHP limpo, eficaz e performático. Vamos explorar as funções mais utilizadas para manipular strings, arrays e realizar operações matemáticas.


1. Introdução: O Poder das Funções Nativas ✨

As funções nativas são blocos de código pré-escritos e otimizados que o PHP oferece para realizar operações específicas. Elas são a espinha dorsal de muitas aplicações e nos poupam um tempo precioso de desenvolvimento.

Nesta aula, vamos focar em três categorias fundamentais:

  1. Funções de String: Para manipular textos, formatar saídas, buscar e substituir caracteres.
  2. Funções de Array: Para gerenciar coleções de dados, adicionar, remover, ordenar e pesquisar elementos.
  3. Funções Matemáticas: Para realizar cálculos, gerar números aleatórios e operações numéricas diversas.

Vamos começar a explorar! 🚀


2. Explorando Funções Nativas Detalhadas com Exemplos

2.1. Funções de String 📝

Strings são sequências de caracteres e são onipresentes em qualquer aplicação. O PHP oferece um conjunto robusto de funções para trabalhar com elas.

strlen() - Obtém o tamanho da string

Retorna o número de bytes em uma string. Para strings com caracteres multibyte (como acentos), use mb_strlen().

<?php
$texto = "Olá, Mundo!";
echo "O tamanho da string é: " . strlen($texto); // Saída: O tamanho da string é: 12
 
$texto_multibyte = "Olá, Programador! 🚀";
echo "\nO tamanho da string multibyte (bytes): " . strlen($texto_multibyte); // Saída: O tamanho da string multibyte (bytes): 23 (contando o emoji como 4 bytes)
echo "\nO tamanho da string multibyte (caracteres): " . mb_strlen($texto_multibyte, 'UTF-8'); // Saída: O tamanho da string multibyte (caracteres): 20
?>

strpos() - Encontra a primeira ocorrência de uma substring

Retorna a posição numérica da primeira ocorrência de uma substring dentro de outra string. Retorna false se a substring não for encontrada.

<?php
$frase = "PHP é uma linguagem de programação.";
$posicao = strpos($frase, "linguagem");
 
if ($posicao !== false) {
    echo "A palavra 'linguagem' foi encontrada na posição: " . $posicao; // Saída: A palavra 'linguagem' foi encontrada na posição: 10
} else {
    echo "A palavra não foi encontrada.";
}
 
$posicao_nao_encontrada = strpos($frase, "Python");
if ($posicao_nao_encontrada === false) {
    echo "\n'Python' não foi encontrada."; // Saída: 'Python' não foi encontrada.
}
?>

substr() - Extrai uma parte da string

Retorna a parte da string especificada pelos parâmetros start (início) e length (comprimento).

<?php
$url = "https://www.exemplo.com.br/pagina/123";
 
// Extrair o domínio
$dominio = substr($url, 12, 11); // Começa na posição 12, pega 11 caracteres
echo "Domínio: " . $dominio; // Saída: Domínio: exemplo.com
 
// Extrair o caminho após o domínio
$caminho = substr($url, strpos($url, ".br") + 3); // Encontra ".br", adiciona 3 para pular e pega o restante
echo "\nCaminho: " . $caminho; // Saída: Caminho: /pagina/123
?>

str_replace() - Substitui todas as ocorrências de uma substring

Substitui todas as ocorrências de uma string de busca por uma string de substituição.

<?php
$frase = "O PHP é legal. PHP é divertido.";
$nova_frase = str_replace("PHP", "JavaScript", $frase);
echo "Frase original: " . $frase;         // Saída: Frase original: O PHP é legal. PHP é divertido.
echo "\nNova frase: " . $nova_frase;     // Saída: Nova frase: O JavaScript é legal. JavaScript é divertido.
 
// Substituir múltiplos valores
$letras_a_remover = array("a", "e", "i", "o", "u");
$texto_sem_vogais = str_replace($letras_a_remover, "", "Isso é um teste.");
echo "\nTexto sem vogais: " . $texto_sem_vogais; // Saída: Texto sem vogais: Iss  m tst. (Note o espaço, pois 'é' e 'u' foram removidos)
?>

trim() - Remove espaços em branco do início e fim

Remove espaços (ou outros caracteres especificados) do início e do fim de uma string.

<?php
$login = "   usuario@email.com   ";
$login_limpo = trim($login);
echo "Login original: '" . $login . "'";         // Saída: Login original: '   usuario@email.com   '
echo "\nLogin limpo: '" . $login_limpo . "'";   // Saída: Login limpo: 'usuario@email.com'
 
$produto = "---Produto XYZ---";
$produto_limpo = trim($produto, "-");
echo "\nProduto limpo: " . $produto_limpo; // Saída: Produto limpo: Produto XYZ
?>

strtoupper() e strtolower() - Converte para maiúsculas/minúsculas

Converte todos os caracteres alfabéticos de uma string para maiúsculas ou minúsculas. Para caracteres multibyte, use mb_strtoupper() e mb_strtolower().

<?php
$nome = "Maria da Silva";
echo "Maiúsculas: " . strtoupper($nome); // Saída: Maiúsculas: MARIA DA SILVA
echo "\nMinúsculas: " . strtolower($nome); // Saída: Minúsculas: maria da silva
 
$titulo = "Introdução à Programação";
echo "\nMinúsculas (multibyte): " . mb_strtolower($titulo, 'UTF-8'); // Saída: Minúsculas (multibyte): introdução à programação
?>

2.2. Funções de Array 📦

Arrays são estruturas de dados poderosas para armazenar coleções de itens. O PHP oferece uma vasta gama de funções para manipulá-los.

count() - Conta o número de elementos em um array

Retorna o número de elementos em um array.

<?php
$frutas = ["Maçã", "Banana", "Laranja", "Uva"];
echo "Número de frutas: " . count($frutas); // Saída: Número de frutas: 4
 
$dados_usuario = [
    "nome" => "Carlos",
    "idade" => 30,
    "cidade" => "São Paulo"
];
echo "\nNúmero de dados do usuário: " . count($dados_usuario); // Saída: Número de dados do usuário: 3
?>

array_push() - Adiciona um ou mais elementos ao final de um array

Adiciona elementos ao final do array. Modifica o array original.

<?php
$carrinho = ["Produto A", "Produto B"];
array_push($carrinho, "Produto C", "Produto D");
echo "Carrinho atualizado: ";
print_r($carrinho);
// Saída: Carrinho atualizado: Array ( [0] => Produto A [1] => Produto B [2] => Produto C [3] => Produto D )
?>

array_pop() - Remove e retorna o último elemento de um array

Remove o último elemento do array e o retorna. Modifica o array original.

<?php
$tarefas = ["Estudar PHP", "Fazer exercícios", "Descansar"];
$ultima_tarefa = array_pop($tarefas);
echo "Última tarefa removida: " . $ultima_tarefa; // Saída: Última tarefa removida: Descansar
echo "\nTarefas restantes: ";
print_r($tarefas);
// Saída: Tarefas restantes: Array ( [0] => Estudar PHP [1] => Fazer exercícios )
?>

in_array() - Verifica se um valor existe em um array

Retorna true se o valor for encontrado no array, false caso contrário.

<?php
$cores_permitidas = ["vermelho", "azul", "verde"];
$cor_selecionada = "azul";
 
if (in_array($cor_selecionada, $cores_permitidas)) {
    echo "'" . $cor_selecionada . "' é uma cor permitida."; // Saída: 'azul' é uma cor permitida.
} else {
    echo "'" . $cor_selecionada . "' não é uma cor permitida.";
}
 
$cor_nao_permitida = "amarelo";
if (!in_array($cor_nao_permitida, $cores_permitidas)) {
    echo "\n'" . $cor_nao_permitida . "' não é uma cor permitida."; // Saída: 'amarelo' não é uma cor permitida.
}
?>

array_keys() e array_values() - Obtém as chaves ou os valores de um array

array_keys() retorna todas as chaves (índices) de um array. array_values() retorna todos os valores de um array.

<?php
$aluno = [
    "nome" => "Ana",
    "idade" => 22,
    "curso" => "Engenharia"
];
 
echo "Chaves do array: ";
print_r(array_keys($aluno));
// Saída: Chaves do array: Array ( [0] => nome [1] => idade [2] => curso )
 
echo "\nValores do array: ";
print_r(array_values($aluno));
// Saída: Valores do array: Array ( [0] => Ana [1] => 22 [2] => Engenharia )
?>

sort() e rsort() - Ordena um array

sort() ordena um array em ordem crescente (alfabética ou numérica). rsort() ordena em ordem decrescente. Ambas modificam o array original.

<?php
$numeros = [5, 2, 8, 1, 9];
sort($numeros);
echo "Números ordenados (crescente): ";
print_r($numeros);
// Saída: Números ordenados (crescente): Array ( [0] => 1 [1] => 2 [2] => 5 [3] => 8 [4] => 9 )
 
$letras = ["c", "a", "b"];
rsort($letras);
echo "\nLetras ordenadas (decrescente): ";
print_r($letras);
// Saída: Letras ordenadas (decrescente): Array ( [0] => c [1] => b [2] => a )
?>

implode() e explode() - Converte array para string e vice-versa

implode() junta elementos de um array em uma string, usando um "cola" (glue). explode() divide uma string em um array, usando um "delimitador".

<?php
$tags = ["php", "web", "programacao"];
$string_tags = implode(", ", $tags);
echo "Tags como string: " . $string_tags; // Saída: Tags como string: php, web, programacao
 
$string_nomes = "João,Maria,Pedro,Ana";
$nomes_array = explode(",", $string_nomes);
echo "\nNomes como array: ";
print_r($nomes_array);
// Saída: Nomes como array: Array ( [0] => João [1] => Maria [2] => Pedro [3] => Ana )
?>

2.3. Funções Matemáticas ➕➖✖️➗

O PHP oferece diversas funções para operações matemáticas, desde as mais básicas até as mais complexas.

abs() - Valor absoluto

Retorna o valor absoluto de um número.

<?php
echo "Absoluto de -10: " . abs(-10); // Saída: Absoluto de -10: 10
echo "\nAbsoluto de 5: " . abs(5);   // Saída: Absoluto de 5: 5
?>

round() - Arredonda um número float

Arredonda um número float para o inteiro mais próximo ou para um número específico de casas decimais.

<?php
echo "Round de 3.4: " . round(3.4);     // Saída: Round de 3.4: 3
echo "\nRound de 3.6: " . round(3.6);   // Saída: Round de 3.6: 4
echo "\nRound de 3.5: " . round(3.5);   // Saída: Round de 3.5: 4 (arredonda para cima em .5)
echo "\nRound de 3.14159 com 2 casas: " . round(3.14159, 2); // Saída: Round de 3.14159 com 2 casas: 3.14
?>

ceil() e floor() - Arredonda para cima/baixo

ceil() arredonda um float para o próximo inteiro maior. floor() arredonda um float para o próximo inteiro menor.

<?php
echo "Ceil de 4.1: " . ceil(4.1);   // Saída: Ceil de 4.1: 5
echo "\nCeil de 4.9: " . ceil(4.9);   // Saída: Ceil de 4.9: 5
echo "\nFloor de 4.1: " . floor(4.1); // Saída: Floor de 4.1: 4
echo "\nFloor de 4.9: " . floor(4.9); // Saída: Floor de 4.9: 4
?>

rand() - Gera um número inteiro aleatório

Gera um número inteiro pseudo-aleatório. Pode-se especificar um intervalo min e max.

<?php
echo "Número aleatório entre 0 e RAND_MAX: " . rand(); // Saída: Ex: Número aleatório entre 0 e RAND_MAX: 12345
echo "\nNúmero aleatório entre 1 e 100: " . rand(1, 100); // Saída: Ex: Número aleatório entre 1 e 100: 78
?>

min() e max() - Encontra o menor/maior valor

Retorna o menor ou o maior valor de uma lista de argumentos ou de um array.

<?php
echo "Mínimo de (10, 2, 5, 8): " . min(10, 2, 5, 8); // Saída: Mínimo de (10, 2, 5, 8): 2
echo "\nMáximo de (10, 2, 5, 8): " . max(10, 2, 5, 8); // Saída: Máximo de (10, 2, 5, 8): 10
 
$valores = [15, 3, 20, 7];
echo "\nMínimo do array: " . min($valores); // Saída: Mínimo do array: 3
echo "\nMáximo do array: " . max($valores); // Saída: Máximo do array: 20
?>

sqrt() - Raiz quadrada

Retorna a raiz quadrada de um número.

<?php
echo "Raiz quadrada de 9: " . sqrt(9);   // Saída: Raiz quadrada de 9: 3
echo "\nRaiz quadrada de 25: " . sqrt(25); // Saída: Raiz quadrada de 25: 5
?>

pow() - Potência

Retorna a base elevada ao expoente.

<?php
echo "2 elevado a 3: " . pow(2, 3);   // Saída: 2 elevado a 3: 8
echo "\n5 elevado a 2: " . pow(5, 2);   // Saída: 5 elevado a 2: 25
?>

5. Exercícios Práticos / Desafios 🧑‍💻

Agora é a sua vez de colocar a mão na massa! Crie um arquivo PHP (exercicios.php) e resolva os desafios abaixo utilizando as funções nativas que aprendemos.

Desafio 1: Manipulação de String e Array de Nomes 🏷️

Você tem uma lista de nomes de usuários, alguns com espaços extras e em diferentes caixas. Você precisa processá-los para um formato padrão.

  • Crie um array de strings com os seguintes nomes: " joao da silva ", "MARIA PEREIRA", " ana souza ", "pedro alves"
  • Para cada nome:
    • Remova os espaços em branco do início e do fim.
    • Converta a primeira letra de cada palavra para maiúscula e o restante para minúscula. (Dica: ucwords() e strtolower() podem ser úteis, ou combine ucfirst() com strtolower() e explode()/implode() para cada palavra).
  • Armazene os nomes formatados em um novo array.
  • Exiba o novo array, com cada nome em uma linha separada.
  • Encontre o nome mais longo e o mais curto no array final e exiba-os.
<?php
// Seu código aqui
$nomes_brutos = ["  joao da silva  ", "MARIA PEREIRA", " ana souza ", "pedro alves"];
$nomes_formatados = [];
 
foreach ($nomes_brutos as $nome) {
    // 1. Remover espaços
    $nome_trim = trim($nome);
    
    // 2. Converter para Title Case (primeira letra de cada palavra maiúscula)
    // Uma forma simples é usar ucwords(strtolower($string))
    $nome_formatado = ucwords(strtolower($nome_trim));
    
    // Outra forma, mais robusta para multi-bytes ou controle fino:
    // $partes_nome = explode(" ", mb_strtolower($nome_trim, 'UTF-8'));
    // $partes_formatadas = array_map(function($parte) {
    //     return mb_strtoupper(mb_substr($parte, 0, 1, 'UTF-8'), 'UTF-8') . mb_substr($parte, 1, null, 'UTF-8');
    // }, $partes_nome);
    // $nome_formatado = implode(" ", $partes_formatadas);
 
    $nomes_formatados[] = $nome_formatado;
}
 
echo "Nomes formatados:\n";
foreach ($nomes_formatados as $nome) {
    echo "- " . $nome . "\n";
}
 
// Encontrar nome mais longo e mais curto
$nome_mais_longo = "";
$tamanho_mais_longo = 0;
$nome_mais_curto = $nomes_formatados[0]; // Inicializa com o primeiro nome
$tamanho_mais_curto = strlen($nomes_formatados[0]);
 
foreach ($nomes_formatados as $nome) {
    $tamanho_atual = strlen($nome);
    if ($tamanho_atual > $tamanho_mais_longo) {
        $tamanho_mais_longo = $tamanho_atual;
        $nome_mais_longo = $nome;
    }
    if ($tamanho_atual < $tamanho_mais_curto) {
        $tamanho_mais_curto = $tamanho_atual;
        $nome_mais_curto = $nome;
    }
}
 
echo "\nNome mais longo: " . $nome_mais_longo . " (" . $tamanho_mais_longo . " caracteres)\n";
echo "Nome mais curto: " . $nome_mais_curto . " (" . $tamanho_mais_curto . " caracteres)\n";
 
?>

Desafio 2: Análise de Dados de Vendas 📊

Você tem um array de vendas diárias. Precisa realizar algumas análises.

  • Crie um array de números inteiros representando vendas diárias: [150, 230, 80, 400, 120, 300, 180]
  • Calcule e exiba o total de vendas.
  • Encontre e exiba a venda mínima e a venda máxima.
  • Calcule e exiba a média de vendas (arredondada para 2 casas decimais).
  • Adicione uma nova venda de 250 ao array.
  • Ordene o array de vendas em ordem crescente e exiba-o.
<?php
// Seu código aqui
$vendas_diarias = [150, 230, 80, 400, 120, 300, 180];
 
// Total de vendas
$total_vendas = array_sum($vendas_diarias); // Dica: array_sum() é uma função útil para somar elementos de um array
echo "Total de vendas: R$" . $total_vendas . "\n";
 
// Venda mínima e máxima
$venda_minima = min($vendas_diarias);
$venda_maxima = max($vendas_diarias);
echo "Venda mínima: R$" . $venda_minima . "\n";
echo "Venda máxima: R$" . $venda_maxima . "\n";
 
// Média de vendas
$media_vendas = $total_vendas / count($vendas_diarias);
echo "Média de vendas: R$" . round($media_vendas, 2) . "\n";
 
// Adicionar nova venda
array_push($vendas_diarias, 250);
echo "\nArray de vendas após adicionar nova venda:\n";
print_r($vendas_diarias);
 
// Ordenar e exibir
sort($vendas_diarias);
echo "\nArray de vendas ordenado:\n";
print_r($vendas_diarias);
?>

Desafio 3: Gerador de Senhas Simples 🔐

Crie um pequeno script que gera uma senha aleatória com base em alguns critérios.

  • Defina uma string com todos os caracteres possíveis para a senha (letras maiúsculas, minúsculas, números, símbolos).
  • Defina o comprimento da senha desejado (ex: 12 caracteres).
  • Gere uma senha aleatória usando rand() para selecionar caracteres da string de caracteres possíveis.
  • Exiba a senha gerada.
<?php
// Seu código aqui
$caracteres_possiveis = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+-=[]{}|;:,.<>?";
$comprimento_senha = 12;
$senha_gerada = "";
 
$max_index = strlen($caracteres_possiveis) - 1;
 
for ($i = 0; $i < $comprimento_senha; $i++) {
    $indice_aleatorio = rand(0, $max_index);
    $senha_gerada .= $caracteres_possiveis[$indice_aleatorio];
}
 
echo "Senha gerada: " . $senha_gerada . "\n";
?>

6. Resumo e Próximos Passos 🚀

Nesta aula, exploramos as funções nativas mais comuns e úteis do PHP para manipulação de strings, arrays e operações matemáticas. Você viu como:

  • Manipular textos com strlen(), strpos(), substr(), str_replace(), trim(), strtoupper(), strtolower().
  • Gerenciar coleções de dados com count(), array_push(), array_pop(), in_array(), array_keys(), array_values(), sort(), rsort(), implode(), explode().
  • Realizar cálculos com abs(), round(), ceil(), floor(), rand(), min(), max(), sqrt(), pow().

Próximos Passos:

  1. Explore a Documentação Oficial: A documentação do PHP é um recurso inestimável. Visite php.net/manual/pt_BR/funcref.php e explore outras funções que não foram abordadas aqui.
  2. Pratique Constantemente: A melhor forma de aprender é praticando. Tente usar essas funções em seus próprios projetos e desafios.
  3. Aprenda sobre Funções Definidas pelo Usuário: No próximo módulo, vamos aprender como criar nossas próprias funções, o que nos dará ainda mais controle e modularidade em nossos códigos.

Parabéns por completar esta aula! Você está cada vez mais perto de dominar o PHP! 🎉

© 2025 Escola All Dev. Todos os direitos reservados.

Explorando funções nativas do PHP (string, array, math) - Fundamentos do PHP | escola.all.dev.br