Artigo original: https://www.freecodecamp.org/news/the-best-php-examples/

O PHP é uma linguagem de script para back-end (em que o código que é executado pelo servidor, e não pelo dispositivo do usuário) criada em 1995 por Rasmus Lerdorf.

O PHP é uma linguagem de script de uso geral, com código aberto, e é amplamente utilizada no mercado, sendo mais apropriada para o desenvolvimento para a web, podendo ser incorporada ao HTML.

Uma linguagem de programação de script (ou scripting) é uma linguagem em que uma rotina (script) ou programa é executado em tempo de execução, ou seja, não precisa ser transformado em código de máquina (compilada) para só depois ser executado.

Para que serve o PHP?

Em outubro de 2018, ele era usado em 80% dos sites cuja linguagem do lado do servidor é conhecida (em inglês). Normalmente, ele é usado em sites para gerar de forma dinâmica o conteúdo da página, podendo ser usado em:

  • Sites e aplicativos da web (o código do back-end)
  • Script de linha de comando
  • Aplicativos de área de trabalho (GUI)

Em geral, ele é usado principalmente para gerar de modo dinâmico o conteúdo das páginas. Por exemplo, se você tiver um blog, podes escrever algum script em PHP para recuperar suas publicações a partir de um banco de dados e exibi-las no seu blog. Outras maneiras de usar scripts PHP incluem:

  • Processar e salvar os dados inseridos pelos usuários em um formulário
  • Configurar e manipular os cookies do site
  • Restringir o acesso a determinadas páginas do seu site

A maior plataforma de rede social, o Facebook, foi inicialmente escrita usando PHP.

Como funciona o PHP?

Todo o código em PHP é executado apenas no servidor, e não no dispositivo local do usuário. Por exemplo, se você preencher um formulário em um site e enviá-lo, ou se clicar em um link de uma página escrita em PHP, nenhum código PHP será executado no seu computador. Em vez disso, os dados do formulário ou a requisição da página serão enviados a um servidor para serem processados ​​pelos scripts em PHP. Depois de processados, o servidor enviará o HTML resultante para você (que é de onde vem o termo "Hypertext Preprocessor" - ou pré-processador de hipertexto) e o navegador o exibe na tela. Por essa razão, você não consegue ver o código PHP de um site, apenas o HTML resultante produzido pelos scripts em PHP do site.

Ilustrarei isso abaixo:

O PHP é uma linguagem interpretada. Isso quer dizer que, quando você faz alterações no código-fonte, pode testar imediatamente essas alterações, sem precisar compilar (transformar) o código-fonte em formato binário. Ignorar a etapa de compilação torna o processo de desenvolvimento muito mais rápido.

O código em PHP precisa sempre ser colocado entre as tags <?php e ?> e também pode ser incorporado dentro de um código HTML.

Instalação

O PHP pode ser instalado com ou sem um servidor web.

GNU/Linux

Em distribuições GNU/Linux baseadas em Debian, você pode instalá-lo pelo terminal com o comando:

sudo apt install php

No Centos 6 ou 7, você pode instalar com o comando:

sudo yum install php

Depois de instalado, você pode executar qualquer arquivo em PHP simplesmente escrevendo no terminal:

php nome_do_arquivo.php

Ou, se preferir, pode instalar um servidor da web para poder executar seus sites em PHP no seu próprio computador (http://localhost).

Só para esclarecer, o domínio http://localhost é um domínio padrão do sistema , e quando fazemos uma requisição para ele. Ele, então, direciona essa requisição para o IP do próprio computador (por padrão aponta o endereço 127.0.0.1), agora não mais enviando, mas recebendo uma requisição de recurso.

O que um servidor localhost faz é gerenciar as rotas de endereços e executar o seu site no domínio que você quiser (podendo ser diferente do domínio http://localhost também).

O servidor mais usado no mundo é o Apache. Para instalá-lo em distribuições Linux, digite o seguinte comando no seu terminal:

sudo apt install apache2 libapache2-mod-php

Ou, se preferir, pode instalar o PHP, o MySQL e o servidor web, instalando o XAMPP (é um pacote de soluções para servidor web multiplataforma, gratuito e de código aberto) ou pacotes semelhantes como WAMP e MAMP.

Frameworks do PHP

Como escrever todo o código de um site não é algo prático/viável para a maioria dos projetos, a maioria dos desenvolvedores tende a usar frameworks para o desenvolvimento para a web. As vantagens de se usar um framework são:

  • Você não precisa reinventar a roda toda vez que cria um projeto, muitas nuances já estão prontas para você
  • Geralmente, eles são bem estruturados para ajudar você na separação das responsabilidades
  • A maioria dos frameworks tende a seguir as melhores práticas da linguagem
  • Muitos deles seguem o padrão MVC (Model-View-Controller) para separar as camadas de apresentação da lógica

Frameworks populares de PHP

Sintaxe básica

Os scripts de PHP podem ser colocados em qualquer lugar dentro de um documento, e sempre começam com a tag <?php e terminam com a tag ?>. Além disso, cada instrução PHP deve terminar com um ponto e vírgula ;.

Aqui está um script simples que usa a função nativa echo para enviar o texto "Os melhores exemplos de PHP" para a página:

<!DOCTYPE html>
<html>
<body>

<h1>Notícias do desenvolvedor</h1>

<?php echo "Os melhores exemplos de PHP"; ?>

</body>
</html> 

A saída disso seria:

Notícias do desenvolvedor

Os melhores exemplos de PHP

Comentários

O PHP suporta as seguintes maneiras de se comentar o código:

  • Comentários de linha única, ou single-line:
  • Comentários de várias linhas, ou multi-line:
<?php
  // Este é um comentário de uma linha
  # Você também pode fazer comentários de uma linha assim
?>
<?php
/*
Este bloco de comentários
se estende por
várias linhas
*/
?>

Sensibilidade a maiúsculas e minúsculas

Todas as palavras-chave (keywords), classes e funções NÃO diferenciam maiúsculas de minúsculas.

No exemplo abaixo, todas as três declarações de echo são válidas:

<?php
ECHO "Olá!<br>";
echo "Notícias do desenvolvedor<br>";
EcHo "Aproveite todos os artigos<br>";
?>

No entanto, todos os nomes de variáveis ​​diferenciam maiúsculas de minúsculas. No exemplo abaixo, apenas a primeira instrução é válida e exibirá o valor da variável $name, as variáveis $NAME e $NaMe serão tratadas como variáveis ​​diferentes:

<?php
$name = "Quincy";

echo "Olá! Meu nome é " . $name . "<br>";
//Olá! Meu nome é Quincy!

echo "Olá! Meu nome é " . $NAME . "<br>";
//Erro de sintaxe: sintaxe inválida

echo "Olá! Meu nome é " . $NaMe . "<br>";
//Erro de sintaxe: sintaxe inválida
?>

Variáveis

Variáveis ​​são a principal maneira de se armazenar informações em um programa em PHP.

Todas as variáveis ​​no PHP começam com um cifrão, como em $nome_da_variavel. Para atribuir uma variável, use o operador =, com o nome da variável à esquerda e a expressão a ser avaliada à direita.

Sintaxe:

<?php
// Atribui o valor "Olá!" para a variável "saudacao"
$saudacao = "Olá!";
// Atribui o valor 8 para a variável "mes"
$mes = 8;
// Atribui o valor 2019 para a variável "ano"
$ano = 2019;
?>

Regras para variáveis em ​​PHP

  • Declarações de variáveis ​​começam com $, seguido pelo nome da variável
  • Os nomes de variáveis ​​só podem começar com uma letra maiúscula ou minúscula ou um sublinhado ( _)
  • Os nomes de variáveis ​​podem conter apenas letras, números ou sublinhado (Az, 0-9 e _). Outros caracteres especiais, como + - % ( ) . &, são inválidos
  • Os nomes das variáveis ​​diferenciam maiúsculas de minúsculas

Alguns exemplos de nomes de variáveis ​​permitidos:

  • $minha_variavel
  • $outraVariavel
  • $variavelNro2

Variáveis ​​predefinidas

O PHP tem várias palavras-chave especiais que, embora sejam nomes de variáveis ​​"válidas", não podem ser usadas para suas variáveis. A razão disso é que a própria linguagem já definiu essas variáveis ​​e elas são usadas para propósitos especiais. Vários exemplos estão listados abaixo, mas se quiser ver a lista completa, essa é a documentação do PHP.

  • $this
  • $_GET
  • $_POST
  • $_SERVER
  • $_FILES

Tipos de dados em PHP

As variáveis ​​podem armazenar dados de diferentes tipos, como:

  • String ("Olá")
  • Inteiro (5)
  • Float (também chamado de double) (1.0)
  • Booleano (1 ou 0)
  • Array (array("Eu", "sou", "um", "array"))
  • Objeto
  • NULL
  • Recurso

Strings

Uma string é uma sequência de caracteres. Ela pode ser qualquer texto entre aspas (simples ou duplas):

$x = "Olá!";
$y = 'Olá!';

Inteiros

Um tipo de dados inteiro é um número não decimal entre -2.147.483.648 e 2.147.483.647.

Regras para números inteiros:

  • Os números inteiros devem ter pelo menos um dígito
  • Os inteiros não devem ter o ponto decimal
  • Os inteiros podem ser positivos ou negativos até o número 2.147.483.647

$x = 5;

Flutuantes (float)

Um número flutuante, ou de ponto flutuante, é um número com um ponto decimal, ou um número na forma exponencial(por exemplo, 5.046E-7), podendo ter, uma precisão de até 14 dígitos, dependendo do sistema.

$x = 5.01;

Booleanos

Um booleano representa dois estados possíveis: TRUE (Verdadeiro) ou FALSE (Falso). Booleanos são frequentemente usados ​​em testes condicionais.

$x = true;
$y = false;

Arrays

Um array armazena mais de um valor em uma única variável.

$cores = array("Magenta", "Amarelo", "Ciano");

NULL

Null é um tipo de dado especial que só pode ter o valor null. As variáveis ​​podem ser declaradas sem valor ou esvaziadas definindo o seu valor como null. Além disso, se uma variável for criada sem receber um valor, ela é atribuída com o valor null automaticamente.

<?php
// Atribui o valor "Olá!" à variável saudacao
$saudacao = "Olá!";

// Esvazie o valor de saudacao definindo-a como null
$saudacao = null;
?>

Classes e objetos

Uma classe é uma estrutura de dados útil para modelar coisas do mundo real, podendo conter propriedades e métodos. Os objetos são instâncias de uma classe e são uma maneira prática de agrupar valores e funções específicas de uma classe.

<?php
class Car {
    function Car() {
        $this->model = "Tesla";
    }
}

// Cria um objeto
$Lightning = new Car();

// Mostra as propriedades do objeto
echo $Lightning->model;
?>

Recurso em PHP

Um recurso, ou, como é mais conhecido, resource, é uma variável especial, mantendo uma referência a um recurso externo. Os resources são criados e usados ​​por funções especiais. Um exemplo é a função getresourcetype(), que você pode usar para ver o tipo de recurso que uma variável oferece.

<?php
// exibe: mysql link
$c = mysql_connect();
echo get_resource_type($c) . "\n";

// exibe: stream
$fp = fopen("foo", "w");
echo get_resource_type($fp) . "\n";

// exibe: domxml document
$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc) . "\n";

Strings

Uma string é uma série de caracteres. Elas podem ser usadas ​​para armazenar qualquer informação textual em seu aplicativo.

Existem diversas maneiras diferentes de se criar strings em PHP.

Aspas simples

Strings simples podem ser criadas usando aspas simples.

$nome = 'Joe';

Para incluir aspas simples dentro de uma string de aspas simples, use a barra invertida como escape (que altera o significado do próximo caractere).

$sobrenome = 'O\'Brian';

Aspas duplas

Você também pode criar strings usando aspas duplas.

$name = "Joe";

Para incluir aspas duplas dentro de uma string de aspas duplas, use a barra invertida também.

$citacao = "Mary disse: \"Eu quero algumas torradas\" e depois fugiu.";

Strings com aspas duplas também permitem sequências de escape. Esses são códigos especiais que colocam caracteres em sua string e representam caracteres normalmente invisíveis. Os exemplos mais comuns são novas linhas \n, tabulações \t e a barra invertida \\.

Você também pode incorporar variáveis em ​​PHP em strings com aspas duplas para que seus valores sejam adicionados à string normalmente.

$nome = 'Joe';
$saudacao = "Olá $nome"; // agora contém a string "Olá Joe"

Funções de String

Encontrar o tamanho de uma string

A função strlen() retorna o tamanho de uma string.

<?php
echo strlen("Notícias do desenvolvedor"); // exibe: 29
?>

Encontrar o número de palavras em uma string

A função strwordcount() retorna o número de palavras em uma string:

<?php
echo str_word_count("Notícias do desenvolvedor"); // exibe: 3
?>

Inverter uma string

A função strrev() inverte uma string:

<?php
echo strrev("Notícias do desenvolvedor");
// exibe: rodevlovnesed od saicítoN
?>

Pesquisar um texto em uma string

A função strpos() procura um texto em string e retorna a posição em que ele aparece:

<?php
echo strpos("Notícias do desenvolvedor", "desenvolvedor"); // exibe: 12
?>

Substituir texto dentro de uma string

A função str_replace() substitui o texto em uma string:

<?php
str_replace("freeCodeCamp", "desenvolvedor", "Notícias do freeCodeCamp");
// exibe: Notícias do desenvolvedor
?>

Constantes

Constantes são um tipo de variável em PHP. A função define() é usada para definir uma constante, e recebe três argumentos - o nome da chave, o valor da chave e um booleano (verdadeiro ou falso) que determina se o nome da chave não diferencia maiúsculas de minúsculas (falso por padrão). O valor de uma constante não pode ser alterado depois que é definido. É usado para valores que raramente mudam (por exemplo, uma senha de banco de dados OU chave de API).

Escopo

É importante você saber também que, diferente das variáveis, as constantes SEMPRE possuem o escopo global, e podem ser acessadas de qualquer função no script.

<?php
  define("freeCodeCamp", "Aprenda a programar e ajude organizações sem fins lucrativos", false);
  echo freeCodeCamp;
>?

// exibe: Aprenda a programar e ajudar organizações sem fins lucrativos

Além disso, quando você está criando classes, você pode declarar suas próprias constantes.

lass Humano {
  const TYPE_MACHO = 'm';
  const TYPE_FEMEA = 'f';
  const TYPE_UNKNOWN = 'u'; // Quando o usuário não selecionar o gênero
}

Observação: se você quiser usar essas constantes dentro da classe Humano, você pode referenciá-las como self::NOME_DA_CONSTANTE. Se você quiser usá-las fora da classe, você precisa referenciar elas como HumanO::NOME_DA_CONSTANTE.

Operadores

O PHP contém todos os operadores normais que se espera encontrar em uma linguagem de programação.

Um único "=" é usado como operador de atribuição e um duplo "==" ou o triplo "===" é usado para comparação.

Os usuais "<" e ">" também podem ser usados ​​para comparação e "+=" pode ser usado para somar um valor à variável e atribuir o resultado à si mesma ao mesmo tempo.

O mais notável é o uso do "." para concatenar strings e ".=" para adicionar uma string ao final de outra.

Uma novidade do PHP 7.0.X é o operador Spaceship "<=>". Esse operador retorna -1, 0 ou 1 quando $a é menor, igual ou maior que $b.

<?php

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

Instruções if/else/elseif

If/else (se/senão) é uma instrução condicional onde, dependendo de uma condição ser verdadeira ou não, diferentes ações serão executadas.

Observação: os colchetes {} são necessários apenas se a condição tiver mais de uma ação; no entanto, é uma boa prática incluí-los, independentemente da quantidade de ações.

Instrução if

<?php
  if (condicao1) {
    instrucao1;
    if (condicao2) instrucao2;
  }

Observação: é possível aninhar quantas instruções em um bloco "if" você quiser; você não está limitado à quantidade dos exemplos.

Instrução if/else

<?php

  if (condicao) {
    instrucao1;
    instrucao2;
  } else {
    instrucao3;
    instrucao4;
  }

Observação: a instrução else é opcional.

Instrução if/elseif/else

<?php
  if (condicao1) {
    instrucao1;
    instrucao2;
  } elseif (condicao2) {
    instrucao3;
    instrucao4;
  } else {
    instrucao5;
  }

Observação: elseif deve ser escrito sempre como uma palavra só.

Instruções if/else aninhadas

<?php
  if (condicao1) {
    if (condicao2) {
      instrucao1;
      instrucao2;
    } else {
      instrucao3;
      instrucao4;
    }
  } else {
    if (condicao3) {
      instrucao5;
      instrucao6;
    } else {
      instrucao7;
      instrucao8;
    }
  }

Múltiplas condições

Várias condições podem ser usadas de uma só vez com os operadores lógicos "ou" (||), "xor" e "e" (&&).

Por exemplo:

<?php
  if (condicao1 && condicao2) {
    echo 'Ambas as condições são verdadeiras!';
  } elseif (condicao1 || condicao2) {
    echo 'Uma condição é verdadeira!';
  } else (condicao1 xor condicao2) {
    echo 'Uma condição é verdadeira e outra é falsa!';
  }

Observação: é uma boa prática envolver condições individuais entre parênteses quando você tiver mais de um (pois pode melhorar a legibilidade).

Sintaxe alternativa de if/else

Há também uma sintaxe alternativa para estruturas de controle:

if (condicao1):
  instrucao1;
else:
  instrucao2;
endif;

Operador ternário

Outra opção é o operador ternário, que é basicamente uma instrução if/else de uma única linha.

Vamos supor que você precise exibir "Olá (nome do usuário)" se um usuário estiver logado e "Olá visitante" se ele não estiver logado.

Instrução if/else:

if($usuario == !NULL {
  $mensagem = 'Olá '. $usuario;
} else {
  $mensagem = 'Olá visitante';
}

Operador ternário:

$mensagem = 'Olá '.($usuario == !NULL ? $usuario : 'Guest');

Switch

Em PHP, a instrução Switch é muito semelhante à instrução Switch do JavaScript (consulte essa Introdução ao Switch em JavaScript para comparar as duas - texto em inglês). Ele permite testes rápidos de caso com muitas condições diferentes possíveis, de forma mais legível.

<?php
  // Exemplo da instrução switch
  switch ($i) {
    case "free":
      echo "i é free";
      break;
    case "code":
      echo "i é code";
      break;
    case "camp":
      echo "i é camp";
      break;
    default:
      echo "i é freecodecamp";
      break;
  }

Break

A instrução break; sai do switch e continua a execução do código depois dele. Se você não usar a instrução break;, poderá acabar executando vários casos e instruções, sendo que, somente quando isso for desejado, você deve não incluir a instrução break;.

Um exemplo desse comportamento pode ser visto abaixo:

<?php
  $j = 0;
  switch ($i) {
    case '2':
      $j++;
    case '1':
      $j++;
      break;
    default:
      break;
  }

Se $i = 1, o valor de $j seria:

1

Se $i = 2, o valor de $j seria:

2

Embora a quebra possa ser omitida sem causar falhas, em alguns casos (como o exemplo abaixo), geralmente é uma boa prática inclui-la para se ter legibilidade e segurança:

<?php
  switch ($i) {
    case '1':
      return 1;
    case '2':
      return 2;
    default:
      break;
  }
<?php
  switch ($i) {
    case '1':
      return 1;
      break;
    case '2':
       return 2;
       break;
    default:
       break;
  }

Exemplo

<?php
  // inicializa com um inteiro aleatório dentro do intervalo dos números do dado
  $numeroDado = mt_rand(1, 6);
  // inicializa
  $numeroTexto = "";
  // chama a instrução switch
  switch($numeroDado) {
    case 1:
      $numeroTexto = "Um";
      break;
    case 2:
      $numeroTexto = "Dois";
      break;
    case 3:
    case 4:
      // os casos 3 e 4 vão para esta linha
      $numeroTexto = "Três ou Quatro";
      break;
    case 5:
      $numeroTexto = "Cinco";
      echo $numeroTexto;
      // break;
      //sem especificar o break ou return, ele continuará executando o próximo case.
  
    case 6:
      $numeroTexto = "Seis";
      echo $numeroTexto;
      break;
    default:
      $numeroTexto = "desconhecido";
  }
//exibe o resultado
echo 'O dado caiu no número '.$numeroTexto.'.';

?>

Resultado

Se case for 1
> O dado caiu no número Um.
Se case for 2
> O dado caiu no número Dois.
Se case for 3
> O dado caiu no número Três ou Quatro.
Se case for 4
> O dado caiu no número Três ou Quatro
Se case for 5
> CincoSeisO dado caiu no número Seis
Se case for 6
> SeisO dado caiu no número Seis.
Se não for nenhuma das anteriores
> O dado caiu no número desconhecido.

Laços

Quando você precisa repetir uma tarefa várias vezes, pode usar um laço (ou loop) em vez de adicionar o mesmo código várias vezes.

Usar um break dentro do laço permite que você interrompa a execução.

Laço for

Para fazer um laço em um bloco de código um número específico de vezes, utilize o laço for.

<?php
  for($indice = 0; $indice < 5; $indice++) {
    echo "Contador do laço atual em ".$indice.".\n";
  }
?>
/* Exibirá:
Contador do laço atual em 0.
Contador do laço atual em 1.
Contador do laço atual em 2.
Contador do laço atual em 3.
Contador do laço atual em 4.
*/

Laço while

A instrução while executa um laço em um bloco de código enquanto uma condição for verdadeira.

<?php
  $indice = 5;
  while ($indice >= 0) {
    echo "O índice é ".$indice.".\n";
    $indice--;
  }
?>
/*
Exibirá:
O índice é 5.
O índice é 4.
O índice é 3.
O índice é 2.
O índice é 1.
O índice é 0.
*/

Laço do...while

Com essa instrução, você consegue fazer um laço em um bloco de código uma vez e só repeti-lo se a condição for verdadeira.

<?php
  $indice = 3;
  do {
    // executa isso pelo menos 1 vez
    echo "Índice: ".$indice.".\n";
    $index --;
  } while ($indice > 0)
?>
/* Exibirá:
Índice: 3.
Índice: 2.
Índice: 1.
*/

Laço foreach

O laço foreach repete o bloco de código para cada valor de um array, atribuindo esse valor a uma variável criada internamente e redefinida a cada repetição.

<?php
  $arr = array(1, 2, 3, 4);
  foreach ($arr as &$indice) {
    echo "Índice: ".$indice.".\n";
  }
?>
/*
Exibirá:
Índice: 1.
Índice: 2.
Índice: 3.
Índice: 4.
*/

Funções

Uma função é um bloco de instruções que pode ser executado sempre que for chamado em um programa.

Função simples + chamada

function diga_ola() {
  return "Olá!";
}

echo diga_ola()

Função simples + parâmetro + chamada

function diga_ola($amigo) {
  return "Olá " . $amigo . "!";
}

echo diga_ola('Tommy');

Função strtoupper()

A função strtoupper retorna a string que foi enviada para ela como parâmetro na sua versão em MAIÚSCULAS!

function fazerIssoGRANDE($um_monte_de_nomes) { 
  foreach($um_monte_de_nomes as $os_simpsons) {
    $GRANDE[] = strtoupper($os_simpsons);
  }
  return $GRANDE;
}
$lista_com_nomes = ['Homer', 'Marge', 'Bart', 'Maggy', 'Lisa'];
var_dump(fazerIssoGRANDE($lista_com_nomes));

Arrays

Arrays são como variáveis ​normais, só que contêm vários valores em uma lista ordenada. Isso é útil se você tiver vários valores relacionados entre si, como uma lista de nomes de alunos ou uma lista de capitais.

Tipos de arrays

No PHP, existem dois tipos de arrays: arrays indexados e arrays associativos. Cada um deles tem seu próprio uso e veremos aqui como criar esses arrays.

Array indexado

Um array indexado é uma lista de valores ordenados. Cada um desses valores no array recebe um número de índice. Os índices em arrays sempre começam no 0 para o primeiro valor e depois crescem de um em um a partir daí.

<?php
  $lista_de_mercado = array("ovos", "leite", "queijo");
?>

$lista_de_mercado[0] retornaria "ovos", $lista_de_mercado[1] retornaria "leite", e $lista_de_mercado[2] retornaria "queijo".

Array associativo

Um array associativo é uma lista de valores que são acessados ​​por meio de uma chave ao invés de índices numéricos. Uma chave pode ter qualquer valor e ser de qualquer tipo, contanto que seu nome seja único no array.

<?php
  $pontuacao_dos_estudantes = array("Joe" => 83, "Frank" => "93", "Benji" => "90");
?>

$pontuacao_dos_estudantes['Joe'] retornaria 83, $pontuacao_dos_estudantes['Frank'] retornaria 93, $pontuacao_dos_estudantes['Benji'] retornaria 90.

Array multidimensional

Um array multidimensional é um array que contém outros arrays. Isso permite criar estruturas de dados complexas que podem modelar um grupo de dados muito complexo.

<?php
  $estudantes =
    array(
      array("primeiro_nome" => "Joe", "pontuacao" => 83, "ultimo_nome" => "Smith"),
      array("primeiro_nome" => "Frank", "pontuacao" => 92, "ultimo_nome" => "Barbson"),
      array("primeiro_nome" => "Benji", "pontuacao" => 90, "ultimo_nome" => "Warner")
    );
?>

Agora você pode obter o primeiro estudante pelo primeiro_nome dele com:

$estudantes[0]['primeiro_nome']

Obter o comprimento de um array - a função count()

A função count() é usada para retornar o comprimento (o número de elementos) de um array:

<?php
  $carros = array("Volvo", "BMW", "Toyota");
  echo count($carros);
?>

Ordenando arrays

O PHP oferece várias funções para ordenar arrays. Esta página descreve as diferentes funções e inclui exemplos.

sort()

A função sort() ordena os valores de um array em ordem alfabética/numérica ascendente (por exemplo, A, B, C, D, E... 1, 2, 3, 4, 5...).

<?php
  $freecodecamp = array("free", "code", "camp");
  sort($freecodecamp);
  print_r($freecodecamp);
?>

Resultado:

Array
(
    [0] => camp
    [1] => code
    [2] => free
)

rsort()

As funções rsort() ordenam os valores de um array em ordem alfabética/numérica decrescente (por exemplo, Z, Y, X, W, V... 5, 4, 3, 2, 1...).

<?php
  $freecodecamp = array("free", "code", "camp");
  rsort($freecodecamp);
  print_r($freecodecamp);
?>

Resultado:

Array
(
    [0] => free
    [1] => code
    [2] => camp
)

asort()

A função asort() ordena um array associativo, por seus valores, em ordem alfabética/numérica ascendente (por exemplo, A, B, C, D, E... 1, 2, 3, 4, 5...).

<?php
  $freecodecamp = array("zero"=>"free", "one"=>"code", "two"=>"camp");
  asort($freecodecamp);
  print_r($freecodecamp);
?>

Resultado:

Array
(
    [two] => camp
    [one] => code
    [zero] => free
)

ksort()

A função ksort() ordena um array associativo, por suas chaves, em ordem alfabética/numérica ascendente (Ex. A, B, C, D, E... 1, 2, 3, 4, 5...)

<?php
$freecodecamp = array("zero"=>"free", "one"=>"code", "two"=>"camp");
ksort($freecodecamp);
print_r($freecodecamp);
?>

Resultado:

Array
(
    [one] => code
    [two] => camp
    [zero] => free
)

arsort()

A função arsort() ordena um array associativo, por seus valores, em ordem alfabética/numérica decrescente (por exemplo, Z, Y, X, W, V... 5, 4, 3, 2, 1...)

<?php
$freecodecamp = array("zero"=>"free", "one"=>"code", "two"=>"camp");
arsort($freecodecamp);
print_r($freecodecamp);
?>

Resultado:

Array
(
    [zero] => free
    [one] => code
    [two] => camp
)

krsort()

A função krsort() ordena um array associativo, por suas chaves em ordem alfabética/numérica decrescente (Ex: Z, Y, X, W, V... 5, 4, 3, 2, 1...)

<?php
$freecodecamp = array("zero"=>"free", "one"=>"code", "two"=>"camp");
krsort($freecodecamp);
print_r($freecodecamp);
?>

Resultado:

Array
(
    [zero] => free
    [two] => camp
    [one] => code
)

Formulários

Os formulários são uma maneira de os usuários inserirem dados ou selecionarem dados da página. Os formulários servem para podermos armazenar os dados inseridos, bem como para permitir que informações sejam recuperadas para serem usadas.

Para fazer um formulário funcionar em linguagens como o PHP, você precisa de alguns atributos básicos em html. Na maioria dos casos, o PHP usa variáveis ​​super globais 'post' e 'get' para obter os dados do formulário.

<html>
<body>
  <form method="get" action="target_proccessor.php">
      <input type="search" name="search" /><br />
      <input type="submit" name="submit" value="Search" /><br />
  </form>
<body>
</html>

O atributo 'method' aqui informa ao formulário como enviar os dados do formulário. Em seguida, o atributo 'action' informa para onde enviar os dados do formulário para serem processados. Já o atributo 'name' é extremamente importante e deve ser o único na página com um valor, porque no PHP o valor do nome funciona como a identidade desse campo de entrada.

Verificando os campos obrigatórios do formulário

O PHP possui algumas funções para verificar se os campos de entrada obrigatórios foram atendidos. Essas funções são isset, empty, e is_numeric.

Verificando o formulário para ter certeza de que está preenchido

As verificações isset servem para ver se o campo foi preenchido e não é nulo. Exemplo:

$primeiroNome = $_GET['primeiroNome'];

if(isset($primeiroNome)){
  echo "o campo primeiroNome foi preenchido". "<br>";
} else {
  echo "O campo não está preenchido."."<br>";
}

Manipulando as entradas do formulário

Pode-se obter os valores de entrada dos campos de um formulário com as variáveis ​​globais $POST e $GET.

$_POST["primeiroNome"] or $_GET['ultimoNome']