Como resolver o erro Fatal error: Call to undefined function json_encode() em PHP

Entenda o que causa o erro 'Call to undefined function json_encode()' e como resolvê-lo de maneira eficiente.

O que provoca o erro Fatal error: Call to undefined function json_encode()?

O erro 'Fatal error: Call to undefined function json_encode()' ocorre quando o PHP não consegue encontrar a função json_encode(), que é responsável por converter dados em formato JSON. Essa função é parte do PHP desde a versão 5.2.0, então uma das primeiras coisas a verificar é a versão do PHP que você está utilizando. Se você estiver usando uma versão anterior a essa, a função não estará disponível, resultando nesse erro.

Verificando a versão do PHP

Para checar a versão do PHP que o seu servidor está rodando, você pode usar o seguinte código:

<?php
phpinfo();
?>

Esse trecho de código exibirá uma página com todas as informações sobre a configuração do PHP, incluindo a versão instalada. Se a versão for inferior a 5.2.0, você precisará atualizar o PHP para uma versão mais recente.

Extensão JSON não habilitada

Outra razão comum para o erro é que a extensão JSON não está habilitada no seu PHP. Para verificar se a extensão está ativada, você também pode usar o phpinfo(). Procure por uma seção chamada 'json'. Se não encontrar, você pode habilitá-la editando o arquivo php.ini e descomentando a linha:

;extension=json.so

Remova o ponto e vírgula no início da linha para habilitar a extensão. Após isso, reinicie o servidor web para que as alterações tenham efeito.

Soluções alternativas

Se você não puder atualizar o PHP ou habilitar a extensão, uma alternativa é implementar sua própria função para converter dados em JSON. Aqui está um exemplo simples:

function my_json_encode($data) {
    return serialize($data);
}

Esta função utiliza a função serialize() do PHP para converter os dados em uma string, embora não seja uma solução perfeita como o json_encode(). Use-a com cuidado e apenas se necessário.

Testando a função json_encode()

Uma vez que você tenha verificado a versão do PHP e habilitado a extensão JSON, teste se a função está funcionando corretamente:

$data = array('name' => 'Lucas', 'age' => 30);
$json = json_encode($data);
echo $json;

Esse código cria um array associativo e o converte para JSON, exibindo o resultado. Se tudo estiver correto, você verá a saída:

{"name":"Lucas","age":30}

Conclusão

Em resumo, para resolver o erro 'Fatal error: Call to undefined function json_encode()', verifique a versão do PHP, a habilitação da extensão JSON e, se necessário, considere implementar soluções alternativas. Essas etapas ajudarão você a navegar e solucionar esse erro comum de forma eficiente.

A função json_encode() é uma ferramenta poderosa para desenvolvedores PHP, permitindo a conversão de arrays e objetos em strings JSON. A utilização de JSON é amplamente disseminada em APIs e integração de sistemas, tornando essa função essencial no desenvolvimento web moderno. Compreender suas causas de falha e como resolvê-las é fundamental para garantir que suas aplicações funcionem corretamente, especialmente quando lidam com dados transmitidos entre front-end e back-end.

Algumas aplicações:

  • Integração com APIs RESTful
  • Troca de dados entre sistemas
  • Armazenamento de configurações em formato JSON

Dicas para quem está começando

  • Certifique-se de estar usando a versão correta do PHP.
  • Verifique sempre se a extensão JSON está habilitada.
  • Fique atento ao uso de funções como json_encode() para evitar erros de conversão.
  • Considere o uso de ferramentas de depuração para identificar problemas rapidamente.

Contribuições de Lucas Martins

Compartilhe este tutorial: O que causa 'PHP Fatal error: Call to undefined function json_encode()'?

Compartilhe este tutorial

Continue aprendendo:

Como evitar 'PHP Warning: session_write_close(): Failed to write session data'?

Aprenda a evitar o erro 'session_write_close()' em PHP e melhore a gestão de sessões em suas aplicações.

Tutorial anterior

Por que recebo 'Warning: require_once(): Failed opening required' e como corrigir?

Entenda como solucionar o erro 'Warning: require_once(): Failed opening required' no PHP e evite problemas em seus projetos.

Próximo tutorial