PHP geralmente agir como esperado ao ordenar valores incluindo o zero numérico, classificando-o como menos do que um e maior que qualquer número negativo. As fontes mais comuns de erro ao lidar com valores zero resultam de como eles são usados em matrizes , ou confundir um valor numérico zero com o texto valor "0". Tipos de Arrays
Uma matriz é uma única variável que contém uma lista de valores . PHP tem dois tipos de matrizes que diferem na maneira como cada um está referenciado por comandos matriz. Uma matriz pode ter um índice numérico , em que cada elemento da matriz é atribuído um número seqüencial , ou pode usar um índice com chave em que uma palavra-chave é atribuído a cada elemento. Por exemplo, ambos são matrizes PHP válidas :
$ família = array (" John ", " Maria ", " Dick ", " Jane " )
$ família = array (" pai " => " John ", " mãe " => " Mary ", " filho " => " Dick ", " filha " => "Jane" )
índices baseados em Zero
PHP usa uma base zero para indexação de matriz , que é a maneira técnica de dizer que, em vez de contar os itens começando com um, matrizes são contados a partir de zero. O senso comum pode indicar que $ família [1] é "João" , mas isso vai resultar em "Mary" . $ family [0] é a referência numérica para usar para retornar "João" . Indexação baseada em zero freqüentemente causa erros de programação quando a indexação baseado em um é antecipado pelo programador , mas isso raramente irá causar erros de classificação desde zero é classificado antes um como geralmente seria esperado.
string e Numeric Zero
A causa mais provável de triagem erros envolvendo zero é misturar texto e tipos de valores numéricos. PHP faz a distinção entre o texto " 0" e o número 0. Isso é diferente de outras linguagens de programação que usam coerção automático, onde a língua tenta converter dados numéricos de texto contendo em números durante a programação sintaxe mistura tipos de dados. Documentação PHP afirma que as rotinas de ordenação irá agir de forma irregular quando os tipos de dados são misturados , assim confirmar que todas as variáveis que você espera para armazenar dados numéricos realmente fazê-lo.
Tipos de escolha
PHP tem funções diferentes de ordenação para ordenar arrays por o conteúdo da matriz, ou pelas palavras-chave atribuídos a elementos da matriz. PHP permite a atribuição de uma palavra-chave "0" como um elemento nomeado , que pode ser diferente do elemento 0 do array. Se você está classificando as chaves em uma matriz , verifique suas chaves , bem como os dados da matriz para tipos de dados mistos.