guia da linguagem PHP

Foreach no PHP. Aprenda ler arrays e outras estruturas!

O foreach no PHP é uma estrutura de repetição extremamente flexível e simples. Nesse artigo vamos aprender como utilizá-lo para ler arrays e outros recursos, além de falar sobre a recomendação da PSR-12 para sua escrita.

PHP - Fundamentos
Curso de PHP - Fundamentos
CONHEÇA O CURSO

O que é foreach

O foreach é uma estrutura de repetição da linguagem de programação PHP. Ele é usado para facilitar a iteração de estruturas como arrays, objetos e outros tipos que são iteráveis.

A sintaxe básica do foreach no PHP é a seguinte:

foreach ($coleção as $chave => $valor) {
    //disponível variáveis $chave e $valor
}

Podemos ler o código acima do seguinte modo:

para cada item (na variável $coleção, coloque o índice na variável $chave e o valor na variável $valor)

Como resultado ele percorrerá todos os itens da coleção, disponibilizando a chave e o valor de cada elemento.

Percorrendo array com foreach no PHP

Vamos agora ver como fica o foreach para ler um array no PHP. Vamos usar como exemplo um array com os estados da região sudeste do Brasil:

$estados = [
    'SP' => 'São Paulo',
    'MG' => 'Minas Gerais',
    'RJ' => 'Rio de Janeiro',
    'ES' => 'Espírito Santo'
];

foreach ($estados as $sigla => $nome) {
    echo $nome . " - " . $sigla . PHP_EOL;
}

Como resultado para o código acima teremos:

São Paulo - SP
Minas Gerais - MG
Rio de Janeiro - RJ
Espírito Santo - ES

Caso tenha dúvida de como trabalhar com arrays. Indico o artigo que ensina como declarar e acessar arrays no PHP.

Percorrendo outros recursos com loop foreach no PHP

Pouca gente sabe, mas com foreach também é possível percorrer outras estruturas e não somente arrays:

Conforme podemos ver no exemplo abaixo o uso do foreach para percorrer as propriedades do objeto da classe Estado:

<?php


class estado {

    public string $sigla;

    public string $nome;

    public string $regiao;

    public int $qtdHabitantes;

    public function __construct(string $sigla, string $nome, string $regiao, int $qtdHabitantes) {
        $this->sigla = $sigla;
        $this->nome = $nome;
        $this->regiao = $regiao;
        $this->qtdHabitantes = $qtdHabitantes;
    }
}

$saoPaulo = new Estado("SP", "São Paulo", "Sudeste", 44_000_000);

foreach ($saoPaulo as $propriedade => $valor) {
    echo $propriedade . " - " . $valor . PHP_EOL;
}

O resultado é:

sigla - SP
nome - São Paulo
regiao - Sudeste
qtdHabitantes - 44000000
Desenvolvedor PHP Júnior
Formação: Desenvolvedor PHP Júnior
Nesta formação você aprenderá todos os fundamentos necessário para iniciar do modo correto com a linguagem PHP, uma das mais utilizadas no mercado. Além dos conceitos de base, você também conhecerá as características e a sintaxe da linguagem de forma prática.
CONHEÇA A FORMAÇÃO

Obtendo somente o valor

Podemos utilizar uma sintaxe mais simples do loop foreach no PHP. Ela é útil quando não precisamos do valor da chave, somente o valor, por exemplo:

$estados = ['Rio Grande do Sul', 'Santa Catarina', 'Paraná'];

foreach ($estados as $estado) {
    echo $estado . PHP_EOL;
}

Um exemplo onde geralmente usamos o foreach desse modo é quando temos que percorrer o resultado de uma consulta a um banco de dados relacional.

Recomendação da PSR-12 para o loop foreach no PHP

As PSRs possuem uma série de recomendações para a linguagem de programação PHP. Uma dessas recomendações é a PSR12 que fala sobre codificação, segundo ela o loop for deve seguir as seguintes regras:

  • Obrigatório: Espaço após a palavra chave da estrutura;
  • Proibido: Espaço após o parêntese de abertura;
  • Proibido: Espaço antes do fechamento do parêntese;
  • Obrigatório: O corpo da estrutura de controle deve estar envolvido por chaves, mesmo que possua só uma instrução;
  • Obrigatório: Espaço entre o parêntese de fechamento e a abertura da tag;
  • Obrigatório: Uma identação no corpo da estrutura;
  • Obrigatório: O corpo deve estar uma linha depois da abertura da chave
  • Obrigatório: A chave de fechamento deve estar uma linha após o corpo;

Todos os exemplos que usamos no artigo estão de acordo com a PSR-12. Vale ressaltar que nunca devemos usar o foreach no PHP sem uso das {} se formos seguir a PSR12.

PHP - Recursos essenciais
Curso de PHP - Recursos essenciais
CONHEÇA O CURSO

Considerações finais

O Loop foreach é muito simples de utilizar e flexível! Sempre que tiver que percorrer alguma estrutura na linguagem de programação PHP podemos considerar sua utilização.

Condicional IF Else no PHP. Aprenda suas características!

Uma das estruturas mais utilizadas em programação é o IF. Nesse artigo vamos aprender como usar a estrutura de condicional IF no PHP. Também falaremos sobre as particularidades dessa estrutura de decisão no PHP e a sintaxe indicada pela PSR-12.

PHP - Fundamentos
Curso de PHP - Fundamentos
CONHEÇA O CURSO

Como funciona a estrutura de decisão IF

A estrutura de decisão IF executa uma ou mais instruções (linhas de código) caso a expressão passada para ela retorne verdadeiro. O IF no PHP possui as seguintes sintaxes:

Para execução de única instrução

if (expressão) 
    instrução

E para execução de mais de uma instrução usamos um bloco de código representado por {}:

if (expressão) {
    instrução 1
    instrução 2
    instrução N
}

Como usar o condicional IF no PHP

Vamos agora ver na prática como podemos usar o condicional IF no PHP. Vamos supor que precisamos avaliar a idade de um paciente para uso de um remédio. Se a idade for menor que 2 anos não é permitido o uso:

$idade = 1;

if ($idade < 2) {
    echo "uso não permitido";
}

Podemos usar qualquer expressão que retorna um booleano para ser analisado na estrutura de decisão.

If Else no PHP! Executando algo quando a condição não é verdadeira

Existem situações onde queremos executar algo caso a expressão passada para o IF não seja verdadeira. Nesse caso podemos utilizar a diretiva else:

$idade = 17;

if ($idade < 2) {
    echo "uso não permitido";
} else {
    echo "uso sem restrições";
}

No exemplo acima, se a idade não for menor que 2 ele cairá no else e mostrará uso sem restrições.

Elseif. Analisando mais uma expressão

Existem situações onde é necessário avaliar uma segunda expressão caso a primeira não seja verdadeira, nesse caso usamos a diretiva elseif:

$idade = 17;

if ($idade < 2) {
    echo "uso não permitido";
} elseif ($idade > 65) {
    echo "uso somente com prescrição médica";
} else {
    echo "uso sem restrições";
}

Se a expressão do if não retornar verdadeiro, ele analisará o elseif, se a expressão $idade > 65 for verdadeira ele mostrará uso somente com prescrição médica, caso contrário ele cairá no else.

PHP - Recursos essenciais
Curso de PHP - Recursos essenciais
CONHEÇA O CURSO

Conversões automáticas do PHP

O PHP é uma linguagem de programação de tipagem fraca, devido a essa característica sempre que possível ele tenta converter os valores automaticamente. Isso também acontece quando passamos algo para o IF que não é uma expressão que retorna um booleano.

Veja o exemplo abaixo:

$string = "Treinaweb";

if ($string) {
    echo "Retornou verdadeiro";
}

No exemplo acima o PHP fez a conversão da string “Treinaweb” para booleano. É como se fizéssemos (bool) $string. Se testarmos isso veremos que retorna verdadeiro:

var_dump((bool) $string); //retorna booleano true

Essa mesma conversão acontece se passarmos outros tipos como número, array, objeto e etc. Na documentação existe uma tabela de comparação PHP. Essas conversões de IF são definidas na coluna boolean : if($x) da tabela:

Tabela de conversão de tipos para condicional IF Else no PHP

Note que itens como números diferentes de 0, strings diferentes de “” e arrays com elementos retornam verdadeiro. Enquanto numero 0, string vazia e array vazio retornam falso.

Sempre use comparação estrita no PHP

Devido a mesma característica da linguagem explicada no tópico anterior, o PHP também tenta realizar conversões quando vamos comparar valores. Por exemplo, ao tentarmos fazer:

$string = "Treinaweb";

if ($string == 0) {
    echo "Retornou verdadeiro";
}

A expressão do IF retornará verdadeiro! Parece estranho, mas na realidade o que acontece é que o php tenta converter a string “treinaweb” para inteiro. Quando tentamos converter uma string para inteiro, o PHP olha no começo dela se tem algum número que pode aproveitar, por exemplo:

$string = "10Treinaweb";

echo (int) $string; //imprime 10

Quando não tem nada no início da string que pode ser aproveitado, o PHP retorna um inteiro 0. Logo 0 é igual a 0 por isso retorna verdadeiro e entra no IF.

Existem os comparadores estritos, que verificam o tipo e o valor. Se o tipo não for igual nos dois comparados ele nem olha o valor. Veja como ficaria o IF anterior:

$string = "Treinaweb";

if ($string === 0) {
    echo "Retornou verdadeiro";
}

Nesse modo como temos uma string e um inteiro ele já retornará falso diretamente. Existe também o operador diferente estrito representado pelo símbolo !==

IF Else no PHP e o padrão PSR-12

As PSRs do PHP definem um conjunto de recomendações para a linguagem de programação PHP. A PSR-12 mais especificamente define o padrão para codificação. Segundo ela o IF Else no PHP deve seguir as seguintes regras:

  • Obrigatório: Espaço após a palavra chave da estrutura;
  • Proibido: Espaço após o parêntese de abertura;
  • Proibido: Espaço antes do fechamento do parêntese;
  • Obrigatório: O corpo da estrutura de controle deve estar envolvido por chaves, mesmo que possua só uma instrução;
  • Obrigatório: Espaço entre o parêntese de fechamento e a abertura da tag;
  • Obrigatório: Uma identação no corpo da estrutura;
  • Obrigatório: O corpo deve estar uma linha depois da abertura da chave
  • Obrigatório: A chave de fechamento deve estar uma linha após o corpo;

O que vai resultar em um código formatado do seguinte modo:

if ($idade < 2) {
    echo "uso não permitido";
} elseif ($idade > 65) {
    echo "uso somente com prescrição médica";
} else {
    echo "uso sem restrições";
}

Vale ressaltar que pela recomendação nunca devemos usar IF sem o bloco {}, deste modo:

if ($idade > 2)
    echo "uso sem restrições";
Desenvolvedor PHP Júnior
Formação: Desenvolvedor PHP Júnior
Nesta formação você aprenderá todos os fundamentos necessário para iniciar do modo correto com a linguagem PHP, uma das mais utilizadas no mercado. Além dos conceitos de base, você também conhecerá as características e a sintaxe da linguagem de forma prática.
CONHEÇA A FORMAÇÃO

Considerações finais

A estrutura de decisão IF possui uma sintaxe muito simples e fácil no PHP, porém é importante nos atentarmos aos detalhes específicos da linguagem, como, as conversões automáticas, uso de comparadores estritos ao invés de comparadores simples e as recomendações da PSR-12.

Arrays no PHP: Aprenda como declarar e acessar!

Saber como declarar e acessar arrays no PHP é muito importante. Nesse artigo ensinaremos como trabalhar com arrays simples, associativos e multidimensionais no PHP.

Uma das estruturas mais utilizadas na linguagem PHP são os Arrays. Eles possuem uma estrutura muito flexível que permite ao desenvolvedor usa-los em diversos tipos de situações, além disso arrays no PHP também são extremamente simples declarar e acessar.

PHP - Fundamentos
Curso de PHP - Fundamentos
CONHEÇA O CURSO

O que são Arrays no PHP

Arrays no PHP são estruturas para armazenamento de informações do tipo chave/valor. A chave deve ser obrigatoriamente do tipo inteiro ou string e o valor pode ser de qualquer tipo válido no PHP, incluindo outro array.

Um Array no PHP pode conter diferentes tipos de dados, é possível em um mesmo array colocar números, strings, objetos ou qualquer outro tipo válido na linguagem.

Como declarar um array no PHP

A sintaxe simplificada de criação de arrays no PHP utiliza [] para declaração dos itens:

$notas = [5, 6, 4, 8, 2, 9];

A sintaxe acima é válida a partir do PHP 5.4, antes precisávamos utilizar o construtor array(). Se for trabalhar em aplicações legadas é possível ver declarações de array do seguinte modo:

$notas = array(5, 6, 4, 8, 2, 9);

As duas sintaxes são válidas, devido a primeira tornar o código mais limpo, na maioria dos projetos atuais é a notação utilizada

Como acessar itens de um array no PHP

O modo mais simples de acessar os dados de um array no PHP é através da chave da posição. Todo item guardado em um array no PHP possui uma chave, mesmo que essa chave não seja declarada, como nos exemplos do tópico anterior. Quando não declaradas as chaves iniciam em 0 e vão sendo incrementadas.

Pegando o array de notas mostrados anteriormente, podemos acessar seus dados do seguinte modo:

$notas = [5, 6, 4, 8, 2, 9];

echo $notas[0]; // exibe 5
echo $notas[1]; // exibe 6
echo $notas[2]; // exibe 4
echo $notas[3]; // exibe 8
echo $notas[4]; // exibe 2
echo $notas[5]; // exibe 9

Criando arrays associativos no PHP

Como vimos até agora os arrays no PHP são estrutura do tipo chave/valor, porém até o momento só vimos a definição automática da chave pelo PHP, mas também podemos defini-las manualmente para melhorar a estrutura dos dados. Veja como fica o mesmo array de notas, mas agora com o nome de cada aluno:

$notas = [
    "joao" => 5,
    "maria" => 6,
    "omar" => 4,
    "gabriela" => 8,
    "daniel" => 2,
    "lucia" => 9
];

O acesso aos itens e feito do mesmo modo que vimos anteriormente:

echo $notas['joao']; // exibe 5
echo $notas['maria']; // exibe 6
echo $notas['omar']; // exibe 4
echo $notas['gabriela']; // exibe 8
echo $notas['daniel']; // exibe 2
echo $notas['lucia']; // exibe 9
PHP - Orientação a Objetos - Parte 2
Curso de PHP - Orientação a Objetos - Parte 2
CONHEÇA O CURSO

Adicionando itens a um array existente no PHP

Os exemplos que vimos até agora os dados são definidos diretamente na criação do array no PHP, porém é possível definir dados em um array mesmo depois de declarado, para isso usamos a seguinte sintaxe:

// Definição da chave automaticamente
$notas[] = 'Novo valor';

// Definição da chave manualmente
$notas['nova-chave'] = 'Novo valor';

O acesso é realizado do mesmo modo que já aprendemos, basta usar a nova chave.

Trabalhando com Array multidimensional do PHP

Existem situações onde para representar um determinado tipo de dado precisamos criar estruturas que contenham arrays dentro de arrays. Nesse caso usamos a mesma sintaxe que já aprendemos, tanto para definir, quanto para acessar os dados do array no PHP.

Vamos supor que a nota é composta pela média das três últimas provas, poderíamos ter uma estrutura assim:

$notas = [
    'joao' => [
        'nota-provas' => [4, 5, 6],
        'nota-final' => 5
    ],
    'maria' => [
        'nota-provas' => [7, 5, 6],
        'nota-final' => 6
    ],
    'omar' => [
        'nota-provas' => [4, 5, 3],
        'nota-final' => 4
    ],
    'gabriela' => [
        'nota-provas' => [8, 7, 9],
        'nota-final' => 8
    ],
    'daniel' => [
        'nota-provas' => [2, 1, 3],
        'nota-final' => 2
    ],
    'lucia' => [
        'nota-provas' => [10, 8, 9],
        'nota-final' => 9
    ]
];

// nota final do aluno joão
echo $notas['joao']['nota-final']; // exibe 5

// Nota da primeira prova do aluno joão
echo $notas['joao']['nota-prova'][0] // exibe 4

A cada nível de array usamos [] com a chave para acessar seus dados.

Considerações finais sobre arrays no PHP

O uso de Arrays no PHP é extremamente flexível, devido a liberdade com que podemos armazenar os dados. É simples de usar, pois a sua sintaxe limpa e direta torna o desenvolvimento mais rápido, pois a linguagem possui diversas funções nativas para manipulação de arrays e além disso é uma estrutura muito otimizada em questão de performance dentro da linguagem PHP.

Desenvolvedor PHP Júnior
Formação: Desenvolvedor PHP Júnior
Nesta formação você aprenderá todos os fundamentos necessário para iniciar do modo correto com a linguagem PHP, uma das mais utilizadas no mercado. Além dos conceitos de base, você também conhecerá as características e a sintaxe da linguagem de forma prática.
CONHEÇA A FORMAÇÃO

Variáveis no PHP. Acesse e aprenda como declarar!

O uso de variáveis no PHP é muito importante assim como em várias outras linguagens. Vamos aprender como declarar variáveis, as principais regras de nomeação de variáveis no PHP, suas características e também falaremos sobre tipos básicos de dados.

O PHP é uma linguagem de programação que possui tipagem fraca e dinâmica. Aqui no blog da TreinaWeb temos um artigo que fala sobre as diferenças entre tipagem fraca vs forte e dinâmica vs estática, é interessante você realizar a leitura para facilitar o entendimento de declaração de variável no PHP.

PHP - Fundamentos
Curso de PHP - Fundamentos
CONHEÇA O CURSO

Sintaxe para declaração de variáveis no PHP

A sintaxe para declaração de variáveis no PHP é muito simples, usamos o sinal $ para indicar o início, em seguida o nome da variável e por fim atribuímos um valor a ela:

$curso = 'PHP Fundamentos';

Alguns detalhes quanto a criação de variáveis no PHP:

  • O PHP não permite declarar a variável sem atribuir valor;
  • Por se tratar de uma linguagem de tipagem dinâmica, não é possível definir o tipo de uma variável na declaração;
  • O tipo de dado da variável é automaticamente definido através do tipo de dado atribuído a variável no PHP.

Regras de nomeação de variáveis no PHP

O nome das variáveis deve seguir algumas regras para não gerar problema na execução do nosso código:

  • Os nomes de variáveis sempre começam com o caractere $ (cifrão). Exemplo: $idade;
  • São sensíveis à letra, ou seja, $Valor é diferente de $valor.
  • Um nome de variável válido deve iniciar com um sublinhado OU uma letra, nunca deve ser iniciado com um número ou caractere especial.
  • Seguindo as regras acima, são válidos caracteres de a-z, números e caracteres das tabelas ASCII de 128 a 255.
  • $this é uma variável especial da linguagem e não pode ser atribuída.

Tipos de dados no PHP

Conforme já vimos o PHP é uma linguagem de programação de tipagem dinâmica e não precisamos declarar o tipo de uma variável no PHP, isso não quer dizer que não existe tipos. No PHP temos 4 tipos de dados escalares:

<?php

$nome = 'Elton Fonseca' // string
$idade = 28; // int
$peso = 78.500; //float
$casado = true; //bool

Além de tipos complexos como arrays, objetos e outros:

$cursos = [1, 2, 3, 4]; // array

$obj = new stdClass;
$obj->propriedade = 'valor'; //objeto

Na documentação temos uma página que lista os tipos de dados do PHP.

Valores com tipos diferentes em variável no PHP

Devido a tipagem dinâmica, sempre que necessário podemos trocar o valor de uma variável no PHP sem nos preocuparmos em ter que converter ou criar outra variável. Veja o exemplo abaixo:

<?php

$nome = "Elton Fonseca";

echo gettype($nome); // string

$nome = 28;

echo gettype($nome); // integer

$nome = 78.500;

echo gettype($nome); // float

$nome = true;

echo gettype($nome); //boolean
Desenvolvedor PHP Júnior
Formação: Desenvolvedor PHP Júnior
Nesta formação você aprenderá todos os fundamentos necessário para iniciar do modo correto com a linguagem PHP, uma das mais utilizadas no mercado. Além dos conceitos de base, você também conhecerá as características e a sintaxe da linguagem de forma prática.
CONHEÇA A FORMAÇÃO

Considerações finais sobre variáveis no PHP

A sintaxe simples e a tipagem dinâmica do PHP tornam o uso de variáveis bem natural e fácil, porém em alguns casos são necessárias verificações adicionais de tipos para garantir a execução com segurança do código.

© 2004 - 2019 TreinaWeb Tecnologia LTDA - CNPJ: 06.156.637/0001-58 Av. Paulista, 1765, Conj 71 e 72 - Bela Vista - São Paulo - SP - 01311-200