Função para seleção e retorno de estados brasileiros em PHP

Durante o desenvolvimento de um tema de WordPress, resolvi fazer uma função básica em PHP para a padronização na seleção de estados brasileiros em um formulário e no seu retorno de dados no código HTML. Além do WordPress, pode ser usado em qualquer aplicação que possa utilizar a seleção de unidades federativas brasileiras.

<?php

function estadosBrasil($show, $value="", $name="estado"){
	$estados = array(
		'AC' => 'Acre',
		'AL' => 'Alagoas',
		'AP' => 'Amapá',
		'AM' => 'Amazonas',
		'BA' => 'Bahia',
		'CE' => 'Ceará',
		'DF' => 'Distrito Federal',
		'ES' => 'Espírito Santo',
		'GO' => 'Goiás',
		'MA' => 'Maranhão',
		'MT' => 'Mato Grosso',
		'MS' => 'Mato Grosso do Sul',
		'MG' => 'Minas Gerais',
		'PA' => 'Pará',
		'PB' => 'Paraíba',
		'PR' => 'Paraná',
		'PE' => 'Pernambuco',
		'PI' => 'Piauí',
		'RJ' => 'Rio de Janeiro',
		'RN' => 'Rio Grande do Norte',
		'RS' => 'Rio Grande do Sul',
		'RO' => 'Rondônia',
		'RR' => 'Roraima',
		'SC' => 'Santa Catarina',
		'SP' => 'São Paulo',
		'SE' => 'Serigipe',
		'TO' => 'Tocantins'
	);
	if ($show == "form") {
		echo '<select name="'.$name.'" required>';
		echo '<option value=""></option>';
		foreach ($estados as $siglaUF => $nomeUF) {
			if($siglaUF == $value){
				echo '<option value="'.$siglaUF.'" selected>'.$nomeUF.'</option>';
			} else {
				echo '<option value="'.$siglaUF.'">'.$nomeUF.'</option>';
			}
		}
		echo '</select>';
	}
	else if ($show == "reverso") {
		foreach ($estados as $siglaUF => $nomeUF) {
			if($value == $siglaUF) {
				return $nomeUF;
			}
		}
	}
}

?>

Ao definir a variável $show para form, a função imprime uma lista de seleção no formulário onde o usuário pode escolher o estado. Neste modo, é possível definir qual estado estará previamente selecionado pela variável $value, o que é útil no caso da edição de um cadastro já existente no banco de dados, por exemplo.

Também é possível escolher um nome de controle para a lista de seleção pela variável $name, que será usado pelo back-end após a submissão do formulário. Na função, é usado a nomenclatura da unidade federativa para a interface e a sigla para o back-end.

Já ao definir a variável $show para reverso, a função retorna o nome do estado a partir do valor da variável $value, composta pela sigla da UF. Esta parte é para o retorno do nome do estado em um texto, por exemplo.

O script atualizado também está disponível no meu GitHub.

Avatar de Matheus Misumoto