← PHP para aplicações reais
02 / 11 · 23 MIN

Arrays e funções com intenção

Organiza dados e separa responsabilidades.

Chaves e valores

Um array PHP é um mapa ordenado: pode representar uma sequência ou associar chaves a valores. Define quais as chaves esperadas e distingue uma chave ausente de uma chave presente com valor null. isset devolve false também quando o valor é null.

Separar cálculo e efeitos

Uma função que calcula um total pode devolver o valor sem gravar numa base de dados. Outra camada decide quando persistir. Esta separação torna o comportamento mais previsível e permite reutilizar a lógica numa página, numa API ou numa tarefa agendada.

Aplicação guiada no trabalho

Numa atualização parcial de ticket, o contrato pode definir que owner ausente mantém o responsável e owner=null o remove. Usa array_key_exists para saber se a chave foi enviada e só depois valida o valor e a permissão. isset e ?? tratam null como ausência para os seus fins e podem apagar essa distinção se usados demasiado cedo. Um array é um mapa ordenado, com uma associação por chave; atribuir outra vez a mesma chave substitui o valor. Algumas strings numéricas, como "8", convertem-se para chaves inteiras e podem colidir com 8. Não uses essa conversão implicitamente como regra de identidade de negócio. Ao organizar funções, devolve resultados de cálculo e deixa notificações e persistência numa camada explícita.

$task = ["owner" => null, "status" => "open"];
$exists = array_key_exists("owner", $task); // true
$isSet = isset($task["owner"]); // false
NA PRÁTICA

Numa atualização parcial, não enviar o campo responsável pode significar manter o valor atual; enviar null pode significar removê-lo. O contrato da API deve distinguir estes casos.

Armadilhas comuns

Confundir ausência com null; perder intenção com ??; ignorar conversão de chaves numéricas.

Tópicos relacionados: Dados com parâmetros · Segurança na fronteira web

Leva esta ideia contigo

A ausência de uma chave e um valor null podem representar intenções diferentes.

Criar conta

Referência: PHP manual: Arrays · PHP 8.5 reference; DR PHP 2026.3; new fixtures executed on PHP 8.4.4 / SQLite 3.51.2