PHP

PHP
Logotipo do PHP
ParadigmaMultiparadigma: imperativo, funcional, orientado a objetos, procedural e reflexivo
Surgido em8 de junho de 1995
Última versão8.5.12 (21 de outubro de 2026)
Criado porRasmus Lerdorf
Estilo de tipagemDinâmica, fraca e gradual
Principais implementaçõesZend Engine, HHVM, PeachPie, Quercus e Parrot
Influenciada porC, C++, Java, Perl, Tcl, Kotlin, Rust e Swift
InfluenciouHack
Sistema operacionalSistemas semelhantes ao Unix, Windows e macOS
LicençaLicença BSD modificada
Extensão do arquivo.php, .phar, .phtml, .pht, .phps e .phpt
Página oficialphp.net

PHP é uma linguagem de scripts de uso geral, voltada ao desenvolvimento web. Foi criada pelo programador dinamarquês-canadense Rasmus Lerdorf em 1994 e lançada em 1995. Sua implementação de referência é produzida pelo PHP Group. O nome era uma abreviação de "Personal Home Page", mas passou a ser o retroacrônimo recursivo "PHP: Hypertext Preprocessor".p. 14

O código PHP costuma ser processado em um servidor web por um interpretador implementado como módulo, daemon ou executável Common Gateway Interface, chamado CGI. O resultado da interpretação e execução pode ser qualquer tipo de dado, como HTML gerado pelo programa ou dados binários de uma imagem, e compor toda a resposta HTTP ou parte dela. Sistemas de modelos web, sistemas de gerenciamento de conteúdo e frameworks web podem organizar ou facilitar a geração dessa resposta. A linguagem também pode ser usada em tarefas de programação fora da web, e seu código pode ser executado diretamente na linha de comando.

O interpretador padrão, baseado no Zend Engine, é um software livre disponibilizado sob a licença BSD modificada, também chamada de PHP License versão 4. A implementação é escrita principalmente em C, com componentes em C++. Seu desenvolvimento é aberto à contribuição da comunidade, e a PHP Foundation financia parte do trabalho no núcleo da linguagem. Há versões para diferentes sistemas operacionais e formas de integração com servidores web.

História

O PHP se desenvolveu inicialmente sem uma especificação formal da linguagem. Em julho de 2014, foi publicada uma primeira proposta de especificação, elaborada com a participação da equipe do HHVM e hospedada pelo projeto PHP.

Origens, de 1994 a 1997

O desenvolvimento do PHP começou em 1994, quando Rasmus Lerdorf escreveu programas de Common Gateway Interface, ou CGI, em C para manter sua página pessoal. Ele ampliou esses programas para trabalhar com formulários HTML e se comunicar com bancos de dados, e deu à implementação o nome de "Personal Home Page/Forms Interpreter", ou PHP/FI.

Um exemplo da sintaxe inicial do PHP:

<!--include /text/header.html-->

<!--getenv HTTP_USER_AGENT-->
<!--ifsubstr $exec_result Mozilla-->
  Olá, você está usando o Netscape!<p>
<!--endif-->

<!--sql database select * from table where user='$username'-->
<!--ifless $numentries 1-->
  Desculpe, esse registro não existe<p>
<!--endif exit-->
  Boas-vindas, <!--$user-->!<p>
  Você ainda tem <!--$index:0--> créditos na sua conta.<p>

<!--include /text/footer.html-->

O PHP/FI permitia criar aplicações web dinâmicas simples. Para acelerar a comunicação de erros e melhorar o código, Lerdorf anunciou o lançamento do PHP/FI com o nome "Personal Home Page Tools (PHP Tools) version 1.0" no grupo de discussão comp.infosystems.www.authoring.cgi, da Usenet, em 8 de junho de 1995. Essa versão oferecia funções básicas, como variáveis semelhantes às do Perl, processamento de formulários e inserção de HTML. A sintaxe já havia mudado para se aproximar da usada pelo Perl, mas era mais simples, limitada e menos consistente.

O PHP surgiu da ampliação dessas ferramentas, sem a intenção de criar uma nova linguagem de programação. Lerdorf afirmou: "Não sei como fazer isso parar [...] nunca houve a intenção de escrever uma linguagem de programação [...] não tenho a menor ideia de como escrever uma linguagem de programação [...] eu apenas acrescentava o próximo passo lógico pelo caminho". Uma equipe de desenvolvimento começou a se formar e, depois de meses de trabalho e testes beta, lançou oficialmente o PHP/FI 2 em novembro de 1997.

O desenvolvimento gradual do PHP, sem um projeto inicial para a linguagem, levou a inconsistências nos nomes das funções e na ordem de seus parâmetros. Em alguns casos, os nomes foram escolhidos para corresponder aos das bibliotecas de nível mais baixo que o PHP encapsulava. Em versões muito antigas, o comprimento dos nomes das funções era usado internamente como função de dispersão, de modo que os nomes eram escolhidos para melhorar a distribuição dos valores de dispersão.

PHP 3 e 4, de 1998 a 2004

Exemplo de código PHP para o sistema de gerenciamento de conteúdo WordPress

Zeev Suraski e Andi Gutmans reescreveram o analisador sintático em 1997 e criaram a base do PHP 3. A linguagem recebeu o nome PHP: Hypertext Preprocessor, um acrônimo recursivo. Os testes públicos do PHP 3 começaram em seguida, e o lançamento oficial ocorreu em junho de 1998. Suraski e Gutmans iniciaram outra reescrita do núcleo do PHP, que resultou no Zend Engine em 1999. Os dois também fundaram a Zend Technologies em Ramat Gan, Israel.

O PHP 4.0, com o Zend Engine 1.0, foi lançado em 22 de maio de 2000. Em agosto de 2008, essa linha de desenvolvimento chegou à versão 4.4.9. O desenvolvimento do PHP 4 foi encerrado, sem previsão de novas atualizações de segurança.

Primeiras versões do PHP 5, de 2004 a 2006

O PHP 5.0 foi lançado em 13 de julho de 2004, com o novo Zend Engine 2.0. A versão reformulou o suporte à programação orientada a objetos e acrescentou iteradores e exceções.

O PHP 5.1 e o PHP 5.2 foram lançados nos anos seguintes, com melhorias menores e novos recursos, como a extensão PHP Data Objects, ou PDO, que define uma interface leve e consistente de acesso a bancos de dados. Em 2008, a série PHP 5.x se tornou a única versão estável em desenvolvimento.

Muitos projetos populares de código aberto deixaram de oferecer suporte ao PHP 4 em novos códigos a partir de 5 de fevereiro de 2008, com a iniciativa GoPHP5, organizada por um consórcio de desenvolvedores para incentivar a migração do PHP 4 para o PHP 5.

PHP 6 e Unicode

As funções nativas do PHP para cadeias de caracteres operavam apenas sobre bytes, o que dificultava seu uso com codificações de caracteres multibyte. Em 2005, Andrei Zmievski começou a dirigir um projeto para incorporar suporte nativo a Unicode em toda a linguagem, com a biblioteca International Components for Unicode, ou ICU, e a representação interna das cadeias de texto em UTF-16. Como isso exigiria grandes alterações na implementação da linguagem e nos programas dos usuários, o lançamento foi planejado para a versão 6.0, junto com outros recursos em desenvolvimento.

A falta de desenvolvedores familiarizados com as mudanças necessárias e os problemas de desempenho nas conversões de e para UTF-16, pouco usado na web, atrasaram o projeto. A versão PHP 5.3 foi criada em 2009 e, em março de 2010, o projeto foi oficialmente abandonado na forma que havia assumido. Começou então a preparação do PHP 5.4, com a maior parte dos recursos restantes do PHP 6 que não dependiam de Unicode. Esperava-se elaborar uma nova proposta para integrar Unicode, mas esse suporte não fazia parte da versão preparada em 2014 para suceder a série 5.x.

Últimas versões do PHP 5, de 2009 a 2014

O PHP 5.3 incorporou recursos inicialmente previstos para a versão 6.0, com suporte a espaços de nomes, fechamentos e vinculação estática tardia, além de correções e melhorias nas funções padrão.

Com o abandono da linha de desenvolvimento dedicada a Unicode, um novo processo de lançamento foi adotado em 2011. Ele previa um ciclo anual e distinguia as versões que acrescentavam recursos, de x.y.z para x.y+1.0, das versões principais, de x.y.z para x+1.0.0. Os recursos restantes que haviam sido planejados para a versão 6.0 entraram no PHP 5.4, lançado em março de 2012, como o suporte a traits e uma sintaxe abreviada para arrays. O PHP 5.5, de junho de 2013, e o PHP 5.6, de agosto de 2014, trouxeram outras mudanças incrementais.

Nas versões 5.3 e 5.4, as únicas distribuições binárias para Microsoft Windows eram compilações IA-32 de 32 bits, que exigiam o modo de compatibilidade de 32 bits ao usar o Internet Information Services, ou IIS, no Windows de 64 bits. O PHP 5.5 passou a oferecer compilações x86-64 de 64 bits para Microsoft Windows.

O suporte oficial de segurança ao PHP 5.6 terminou em 31 de dezembro de 2018.

PHP 7.x, de 2015 a 2019

Em 2014 e 2015, foi desenvolvida uma nova versão principal da linguagem, que recebeu o número 7.0 depois de uma discussão entre os desenvolvedores. Os experimentos com Unicode no PHP 6 não haviam chegado a um lançamento, mas artigos e títulos de livros já usavam esse nome, o que poderia causar confusão se ele fosse reutilizado. Uma votação definiu o nome PHP 7.

A base do PHP 7.0 foi uma ramificação inicialmente chamada PHP next generation, ou phpng, escrita por Dmitry Stogov, Xinchen Hui e Nikita Popov. O objetivo era melhorar o desempenho pela refatoração do Zend Engine, mantendo uma compatibilidade quase completa com a linguagem. Em 14 de julho de 2014, testes baseados no WordPress, que eram o principal conjunto de testes de desempenho do projeto phpng, apontavam um ganho de quase 100%. As estruturas de dados mais compactas e outras mudanças do phpng facilitavam melhorias nas versões seguintes e eram mais adequadas à adoção de um compilador just-in-time, ou JIT. Dmitry Stogov afirmou que algumas ideias de otimização do PHP 7 vieram do HHVM, do LuaJIT e do V8. A reformulação recebeu o nome Zend Engine 3, em sucessão ao Zend Engine 2 usado no PHP 5.x.

O PHP 7.0 também trouxe mudanças incompatíveis com versões anteriores, permitidas para versões principais pelo sistema de numeração adotado em 2011. Entre as alterações no núcleo da linguagem estavam a desreferenciação mais consistente de variáveis, o comportamento mais previsível da instrução foreach e a uniformização entre plataformas dos deslocamentos de bits e da conversão de números de ponto flutuante em inteiros. Foram removidas do núcleo interfaces de programação de aplicações de servidor, ou SAPIs, e extensões sem manutenção ou descontinuadas, entre elas a extensão antiga mysql. Também foram removidos os delimitadores no estilo ASP, <% e %>, e a forma <script language="php"> ... </script>.

No PHP 5.x, somente parâmetros de funções podiam ter declarações de tipo. O PHP 7.0 estendeu essa possibilidade aos valores de retorno das funções, e o PHP 7.4, às propriedades dos objetos. O conjunto de tipos disponíveis também aumentou. A versão 7.0 acrescentou os tipos escalares, inteiro, ponto flutuante, cadeia de caracteres e booleano. A versão 7.1 acrescentou o tipo iterable, os tipos que aceitam valor nulo e o tipo de retorno void. O tipo object entrou na versão 7.2.

Outras mudanças ampliaram as possibilidades de expressão da linguagem, como os operadores ??, de coalescência nula, e <=>, de comparação de três vias, chamado "spaceship", na versão 7.0. O PHP 7.1 acrescentou sintaxe para desestruturar arrays e capturar mais de um tipo de exceção. A versão 7.3 flexibilizou as sintaxes Heredoc e Nowdoc, e a versão 7.4 acrescentou o operador de atribuição por coalescência nula.

PHP 8.x, a partir de 2020

O PHP 8.0 foi lançado em 26 de novembro de 2020, como uma versão principal com mudanças incompatíveis com as anteriores.

A versão acrescentou um compilador JIT, capaz de melhorar muito o desempenho em determinados usos. Esperavam-se ganhos maiores em operações matemáticas do que nas tarefas comuns de desenvolvimento web. O ganho de desempenho também abre a possibilidade de reescrever em PHP parte do código escrito em C.

O PHP 8.0 acrescentou atributos, que permitem incluir metadados em elementos de um programa, como classes, métodos e parâmetros. Versões seguintes acrescentaram atributos predefinidos que alteram o comportamento da linguagem, como #[\SensitiveParameter] no PHP 8.2, #[\Override] no PHP 8.3, #[\Deprecated] no PHP 8.4 e #[\NoDiscard] e #[\DelayedTargetValidation] no PHP 8.5.

O PHP 8.0 acrescentou tipos de união, como int|string, que aceita um inteiro ou uma cadeia de caracteres. O PHP 8.1 acrescentou tipos de interseção, como Traversable&Countable, que exige que o valor implemente as interfaces Traversable e Countable. O PHP 8.2 acrescentou tipos em forma normal disjuntiva, ou DNF, com uniões de interseções, como array|(Traversable&Countable). Novas palavras-chave para tipos especiais também foram acrescentadas, entre elas mixed e static no PHP 8.0, never, um tipo inferior que expressa que uma função nunca retorna, no PHP 8.1, e null, false e true como tipos independentes no PHP 8.2.

O PHP 8.0 introduziu mudanças incompatíveis nas comparações entre cadeias de caracteres e números, nas cadeias numéricas e nas assinaturas incompatíveis de métodos. Versões seguintes passaram a emitir avisos sobre comportamentos que deverão ser removidos em uma futura versão principal, como passar null a parâmetros de funções internas que não aceitam esse valor e criar propriedades dinâmicas não declaradas na classe.

O PHP 8.0 também introduziu a expressão match, que usa comparações estritas e retorna um valor. Uma proposta posterior para ampliar a linguagem com correspondência de padrões continuava em discussão em outubro de 2026.

Histórico de versões

Versão Lançamento Fim do suporte Observações
1.0 8 de junho de 1995 Nome oficial "Personal Home Page Tools (PHP Tools)". Primeiro uso do nome "PHP".
2.0 12 de novembro de 1997 Nome oficial "PHP/FI 2.0". Primeira versão que já podia ser caracterizada como PHP, uma linguagem independente com recursos mantidos nas versões seguintes.
3.0 6 de junho de 1998 20 de outubro de 2000 O desenvolvimento deixou de se concentrar em uma pessoa e passou a reunir uma equipe. Zeev Suraski e Andi Gutmans reescreveram a base dessa versão.
4.0 22 de maio de 2000 23 de junho de 2001 Acrescentou o Zend Engine, um sistema mais avançado de interpretação de código em duas etapas, análise e execução.
4.1 10 de dezembro de 2001 12 de março de 2002 Introduziu as variáveis "superglobais", como $_GET, $_POST e $_SESSION.
4.2 22 de abril de 2002 6 de setembro de 2002 Desativou register_globals por padrão. Dados recebidos pela rede deixaram de ser inseridos diretamente no espaço de nomes global, eliminando possíveis falhas de segurança nas aplicações.
4.3 27 de dezembro de 2002 31 de março de 2005 Introduziu a interface de linha de comando, ou CLI, como complemento à CGI.
4.4 11 de julho de 2005 7 de agosto de 2008 Corrigiu um erro de corrupção de memória, o que exigiu romper a compatibilidade binária com extensões compiladas para a versão 4.3.x.
5.0 13 de julho de 2004 5 de setembro de 2005 Zend Engine II, com um novo modelo de objetos.
5.1 24 de novembro de 2005 24 de agosto de 2006 Melhorou o desempenho com a introdução de variáveis do compilador em um mecanismo PHP reformulado. Acrescentou a extensão PHP Data Objects, ou PDO, com uma interface consistente de acesso a bancos de dados.
5.2 2 de novembro de 2006 6 de janeiro de 2011 Ativou a extensão de filtros por padrão e acrescentou suporte nativo a JSON.
5.3 30 de junho de 2009 14 de agosto de 2014 Suporte a espaços de nomes, vinculação estática tardia, rótulos de salto com um goto limitado, funções anônimas, fechamentos, arquivos PHP, ou phar, e coleta de lixo para referências circulares. Melhorias no suporte ao Windows, sqlite3, mysqlnd em substituição a libmysql como biblioteca subjacente das extensões para MySQL, fileinfo em substituição a mime_magic para melhorar o suporte a MIME, a extensão de internacionalização e descontinuação da extensão ereg.
5.4 1 de março de 2012 3 de setembro de 2015 Suporte a traits e à sintaxe abreviada de arrays. Remoção de register_globals, safe_mode, allow_call_time_pass_reference, session_register(), session_unregister() e session_is_registered(). Servidor web integrado. Melhorias nos recursos e no desempenho, com menor consumo de memória.
5.5 20 de junho de 2013 21 de julho de 2016 Suporte a geradores e a blocos finally para tratamento de exceções. OpCache, baseado no Zend Optimizer+, incluído na distribuição oficial.
5.6 28 de agosto de 2014 31 de dezembro de 2018 Expressões escalares constantes, funções variádicas, desempacotamento de argumentos, novo operador de exponenciação, ampliação da instrução use para funções e constantes, novo depurador phpdbg como módulo SAPI e outras melhorias menores.
6.x Não lançada Não se aplica Versão abandonada que previa suporte nativo a Unicode.
7.0 3 de dezembro de 2015 10 de janeiro de 2019 Zend Engine 3, com melhorias de desempenho e suporte a inteiros de 64 bits no Windows. Sintaxe uniforme de variáveis, compilação baseada em árvore sintática abstrata, Closure::call(), deslocamentos de bits consistentes entre plataformas, operador ?? de coalescência nula, sintaxe de escape para pontos de código Unicode, declarações de tipos de retorno e de tipos escalares, inteiro, ponto flutuante, cadeia de caracteres e booleano. Operador <=> de comparação de três vias, chamado "spaceship", delegação de geradores, classes anônimas, API CSPRNG mais simples e disponível de forma mais consistente, substituição de erros internos remanescentes por exceções e sintaxe abreviada para importar mais de um item de um espaço de nomes.
7.1 1 de dezembro de 2016 1 de dezembro de 2019 Tipo iterable, tipos que aceitam valor nulo, tipo de retorno void, modificadores de visibilidade para constantes de classe, sintaxe abreviada de listas e captura de mais de um tipo de exceção.
7.2 30 de novembro de 2017 30 de novembro de 2020 Declaração do tipo object em parâmetros e valores de retorno, extensão libsodium, sobrescrita de métodos abstratos e ampliação dos tipos aceitos em parâmetros.
7.3 6 de dezembro de 2018 6 de dezembro de 2021 Sintaxes Heredoc e Nowdoc mais flexíveis, atribuição por referência e desestruturação de arrays com list(), suporte a PCRE2 e função hrtime.
7.4 28 de novembro de 2019 28 de novembro de 2022 Propriedades tipadas, pré-carregamento, operador de atribuição por coalescência nula, melhorias em openssl_random_pseudo_bytes, referências fracas, interface de funções externas, ou FFI, extensão de hash sempre disponível, registro de algoritmos de hash de senhas, divisão de cadeias multibyte, reflexão para referências, retirada de ext/wddx da distribuição e novo mecanismo de serialização personalizada de objetos.
8.0 26 de novembro de 2020 26 de novembro de 2023 Compilação just-in-time, ou JIT, incremento automático de índices negativos em arrays, regras mais estritas para a linguagem, com validação de métodos abstratos em traits, comparações mais consistentes entre cadeias de caracteres e números e tratamento mais consistente de cadeias numéricas. TypeError em operações aritméticas ou de bits inválidas, reclassificação de erros do mecanismo, erros de tipo consistentes em funções internas, erro fatal para assinaturas incompatíveis de métodos, conversão de ponto flutuante em cadeia de caracteres independente da configuração regional, ajustes na sintaxe de variáveis, atributos, argumentos nomeados, expressão match, promoção de propriedades no construtor, tipos de união, tipo mixed, tipo de retorno static, operador de acesso seguro em caso de nulo, cláusulas catch sem captura, expressão throw e extensão JSON sempre disponível.
8.1 25 de novembro de 2021 31 de dezembro de 2025 Notação explícita para literais inteiros octais, enumerações, propriedades somente de leitura, sintaxe para elementos chamáveis de primeira classe, new em inicializadores, tipos de interseção puros, tipo de retorno never, constantes de classe final e fibras.
8.2 8 de dezembro de 2022 31 de dezembro de 2026 Classes somente de leitura, null, false e true como tipos independentes, conversão entre maiúsculas e minúsculas independente da configuração regional, tipos em forma normal disjuntiva e constantes em traits.
8.3 23 de novembro de 2023 31 de dezembro de 2027 Constantes de classe tipadas, acesso dinâmico a constantes de classe, atributo #[\Override], reinicialização de propriedades somente de leitura durante a clonagem, nova função json_validate, novos recursos do gerador de valores aleatórios e suporte a mais de um arquivo no verificador de sintaxe da linha de comando.
8.4 21 de novembro de 2024 31 de dezembro de 2028 Ganchos de propriedades, visibilidade assimétrica, atualização da API do DOM, melhorias de desempenho, correções de erros e revisão geral do código.
8.5 20 de novembro de 2025 31 de dezembro de 2029 Operador de encadeamento |>.
8.6 Previsto para 19 de novembro de 2026
Legenda: versão antiga, sem suporte · versão anterior, ainda com suporte · versão estável mais recente · versão em desenvolvimento · versão abandonada

A equipe de desenvolvimento adotou, em 28 de junho de 2011, um calendário para os lançamentos do PHP. O sistema previa pelo menos um lançamento por mês e uma versão secundária por ano, que poderia acrescentar recursos. Cada versão secundária receberia correções de erros e de segurança por pelo menos dois anos, seguidos de pelo menos mais um ano apenas com correções de segurança, totalizando um ciclo de três anos. Ao longo desse ciclo, novos recursos só poderiam ser introduzidos se fossem pequenos e independentes. Uma proposta aprovada em 2024 estendeu para dois anos a etapa dedicada apenas à segurança, fixou o encerramento do suporte em 31 de dezembro e eliminou a exceção que permitia acrescentar recursos pequenos e independentes às versões de correção.

Uso de versões desatualizadas

Em 22 de outubro de 2026, a pesquisa da W3Techs ainda identificava PHP 7 em 26,9% dos sites que usavam PHP, PHP 5 em 7,7% e PHP 4 em 0,1%. Essas três versões principais já estavam sem suporte oficial. As versões 8.0 e 8.1 também haviam encerrado seus ciclos de suporte.

Mascote

O elePHPant, mascote do PHP

O mascote do projeto PHP é o elePHPant, um elefante azul com o logotipo do PHP na lateral, desenhado por Vincent Pontier em 1998. Pontier relatou que a ideia surgiu ao perceber a forma de um elefante nas letras PHP vistas de lado.

As versões do elePHPant em pelúcia podem ter outras cores. Os modelos oficiais seguem o desenho original de Pontier. Há séries associadas a empresas, projetos e eventos da comunidade, reunidas em catálogos de colecionadores.

Sintaxe

Um programa "Olá, mundo!" em PHP 7.4, executado no servidor de desenvolvimento integrado à linguagem

O programa "Olá, mundo!" a seguir usa código PHP inserido em um documento HTML:

<!DOCTYPE html>
<html>
    <head>
        <title>Programa "Olá, mundo!" em PHP</title>
    </head>
    <body>
        <p><?= 'Olá, mundo!' ?></p>
    </body>
</html>

O interpretador PHP só executa o código que está entre seus delimitadores. O conteúdo fora deles não é processado como PHP, embora possa estar sujeito às estruturas de controle definidas no código. O delimitador <?php abre um trecho de PHP, e ?> o encerra. A forma abreviada <?= equivale a <?php echo.pp. 22–23 e 46 Existe também a forma curta <?, que reduz a portabilidade dos arquivos de script, pois pode estar desativada na configuração local do PHP. Por esse motivo, o PHP Group desaconselha seu uso. Essa recomendação não se aplica à forma abreviada de echo, <?=. Antes do PHP 5.4.0, essa forma só funcionava com a opção short_open_tag ativada. A partir dessa versão, está sempre disponível. Os delimitadores separam o código PHP de outros conteúdos, como código JavaScript ou marcação HTML.

Em documentos XHTML e XML, os delimitadores <?php e ?> produzem instruções de processamento XML bem formadas. Dessa forma, a combinação de código PHP com a marcação do arquivo no servidor pode constituir um documento XML bem formado.

Os nomes das variáveis recebem um prefixo com o símbolo do cifrão, e não é necessário declarar seu tipo antecipadamente. O PHP 5 introduziu declarações de tipo que permitem exigir que os parâmetros de uma função sejam objetos de determinada classe, arrays, interfaces ou funções de retorno de chamada. Antes do PHP 7, essas declarações não podiam ser usadas com tipos escalares, como inteiros e strings.

O exemplo a seguir mostra como declarar e inicializar variáveis em PHP:

<?php
    $nome = 'João';  // declaração e inicialização de uma variável do tipo string
    $idade = 18;     // declaração e inicialização de uma variável do tipo inteiro
    $altura = 1.75;  // declaração e inicialização de uma variável do tipo double
    echo $nome . ' tem ' . $altura . " m de altura\n"; // concatenação de variáveis e strings
    echo "$nome tem $idade anos."; // interpolação de variáveis em uma string
?>

Os nomes das variáveis diferenciam maiúsculas de minúsculas, ao contrário dos nomes de funções e classes. Strings delimitadas por aspas duplas ou pela sintaxe heredoc permitem inserir o valor de uma variável por interpolação. Como linguagem de formato livre, o PHP considera as quebras de linha como espaços em branco, e as instruções terminam com ponto e vírgula. Há três formas de escrever comentários: /* */ delimita comentários de uma ou mais linhas, enquanto // e # iniciam comentários de uma linha. A instrução echo é uma das palavras-chave usadas para produzir texto na saída.pp. 24–26

As palavras-chave e a sintaxe do PHP seguem o estilo de C. Condições if, laços for e while e instruções de retorno de funções têm sintaxe semelhante à de C, C++, C#, Java e Perl.

Tipos de dados

O PHP tem tipagem fraca e armazena números inteiros com sinal em um intervalo que depende da plataforma, normalmente de 32 ou 64 bits. Não há um tipo inteiro nativo sem sinal. Variáveis inteiras podem receber valores em notação decimal, positiva ou negativa, octal, hexadecimal ou binária.

O intervalo dos números de ponto flutuante também depende da plataforma. Eles podem ser escritos em notação decimal de ponto flutuante ou em duas formas de notação científica. O PHP tem um tipo booleano nativo semelhante aos de Java e C++. Na conversão de números para esse tipo, valores diferentes de zero tornam-se verdadeiros, e zero torna-se falso, como em Perl e C++.

O tipo nulo é usado para variáveis sem valor, e NULL é seu único valor permitido.

Variáveis do tipo resource contêm referências a recursos externos. Em geral, são criadas por funções de uma extensão e só podem ser manipuladas por funções dessa mesma extensão. Arquivos abertos e conexões oferecidas por algumas extensões de bancos de dados são exemplos desses recursos. As imagens da extensão GD também eram representadas por recursos; a partir do PHP 8.0, passaram a usar objetos GdImage.

Arrays podem conter elementos de qualquer tipo aceito pelo PHP, como recursos, objetos e outros arrays. A ordem dos elementos é preservada nas listas de valores e nas tabelas hash com chaves e valores, e essas duas formas podem ser combinadas. O PHP também oferece strings, que podem ser delimitadas por aspas simples, aspas duplas ou pelas sintaxes nowdoc e heredoc.

A Standard PHP Library, ou SPL, reúne interfaces e classes para resolver problemas comuns e acessar dados com eficiência.

Funções

O núcleo do PHP define muitas funções, e outras estão disponíveis em extensões, com documentação acessível no manual on-line da linguagem. A biblioteca interna, porém, usa convenções de nomenclatura diferentes e apresenta as inconsistências mencionadas na seção de história.

O programador pode definir suas próprias funções:

function minhaIdade(int $anoDeNascimento): string
{
    // Calcula a idade subtraindo o ano de nascimento do ano atual.
    $idade = date('Y') - $anoDeNascimento;

    // Retorna uma string com a idade.
    return $idade . ($idade == 1 ? ' ano' : ' anos');
}

echo 'Tenho ' . minhaIdade(1995) . '.';

Em 2026, a saída desse programa é "Tenho 31 anos."

Funções PHP podem ser referenciadas por strings que contêm seus nomes, em lugar de ponteiros para funções. Isso permite usar funções comuns como retornos de chamada ou em tabelas de funções. Funções definidas pelo usuário podem ser criadas a qualquer momento, sem um protótipo prévio. Também podem ser definidas dentro de blocos de código, de modo que a decisão de criá-las ocorra durante a execução. A função function_exists verifica se uma função com determinado nome já foi definida. Chamadas de função exigem parênteses. A exceção são os construtores de classes chamados sem argumentos com o operador new, para os quais os parênteses são opcionais.

A função create_function(), introduzida no PHP 4.0.1 como uma pequena camada sobre eval(), permitia criar funções durante a execução do programa. Seu uso foi descontinuado no PHP 7.2, e a função foi removida no PHP 8.0 em favor da sintaxe de funções anônimas ou fechamentos, introduzida no PHP 5.3, que permite capturar variáveis do escopo envolvente. A sintaxe abreviada com seta foi acrescentada no PHP 7.4:

function criarSomador($x) {
    return fn($y) => $x + $y;
}

$somador = criarSomador(8);
echo $somador(2);  // exibe "10"

Nesse exemplo, criarSomador() cria um fechamento que captura o argumento $x, recebe outro argumento, $y, e é devolvido a quem chamou a função. Esse fechamento é um objeto de primeira classe, que pode ser armazenado em uma variável ou passado como parâmetro para outras funções.

Embora tenha tipagem dinâmica, o PHP aceita declarações de tipo nos parâmetros de funções e as verifica durante a execução. Esse recurso está disponível para classes e interfaces desde o PHP 5.0, para arrays desde o PHP 5.1, para valores invocáveis, ou callable, desde o PHP 5.4, e para os tipos escalares inteiro, ponto flutuante, string e booleano desde o PHP 7.0. O PHP 7.0 também introduziu declarações de tipo de retorno, escritas após a lista de parâmetros e precedidas por dois-pontos. A função criarSomador do exemplo anterior pode receber essas declarações da seguinte forma, com a sintaxe de seta disponível a partir do PHP 7.4:

function criarSomador(int $x): Closure
{
    return fn(int $y): int => $x + $y;
}

$somador = criarSomador(8);
echo $somador(2); // exibe "10"
echo $somador(null); // lança um TypeError porque o tipo passado é incorreto
$somador = criarSomador([]); // também lançaria um TypeError

Por padrão, declarações de tipos escalares seguem as regras de tipagem fraca. Se um parâmetro for do tipo int, por exemplo, a função pode receber inteiros, strings numéricas conversíveis, números de ponto flutuante ou booleanos, que serão convertidos para o tipo esperado. Desde o PHP 7, é possível ativar por arquivo um modo de tipagem estrita que impede essas conversões nos argumentos e valores de retorno, com a exceção de valores int aceitos onde se espera float.

A classe IntlDateFormatter permite obter o nome do dia da semana em português do Brasil, com a localidade pt_BR e o fuso America/Sao_Paulo.

<?php

date_default_timezone_set("America/Sao_Paulo");

function diasemana($data) {
    $d = explode('/', $data);
    $ano = $d[2];
    $mes = $d[1];
    $dia = $d[0];

    $dataFormatada = DateTime::createFromFormat('Y-m-d', "$ano-$mes-$dia");

    $formatter = new IntlDateFormatter(
        'pt_BR',
        IntlDateFormatter::FULL,
        IntlDateFormatter::NONE,
        'America/Sao_Paulo',
        IntlDateFormatter::GREGORIAN,
        'EEEE'
    );

    return $formatter->format($dataFormatada);
}

echo '<h1>', diasemana('20/05/2017'), ' - Dia da semana', '</h1>';
?>

Objetos PHP

O PHP 3 introduziu recursos básicos de programação orientada a objetos, ampliados no PHP 4. Isso permitiu trabalhar com níveis adicionais de abstração e facilitou a criação de programas. O tratamento de objetos foi inteiramente reescrito no PHP 5, com novos recursos e melhorias de desempenho. Nas versões anteriores, os objetos eram manipulados como tipos por valor. Para modificar um objeto recebido sem criar uma cópia, o código precisava recorrer com frequência a variáveis de referência. No novo modelo, os objetos passaram a ser referenciados por um identificador, em vez de serem passados por valor.

O PHP 5 introduziu variáveis de membro e métodos privados e protegidos, classes abstratas, classes finais, métodos abstratos e métodos finais. Também passou a oferecer uma forma padronizada de declarar construtores e destrutores, semelhante à de outras linguagens orientadas a objetos, como C++, e um modelo padrão de tratamento de exceções. O PHP 5 acrescentou interfaces e permitiu que uma classe implementasse mais de uma. Algumas interfaces permitem que os objetos interajam com o ambiente de execução. Objetos que implementam ArrayAccess podem ser usados com a sintaxe de arrays, enquanto objetos que implementam Iterator ou IteratorAggregate podem ser percorridos pela construção da linguagem foreach. A expressão static:: permite a vinculação estática tardia, que considera a classe chamada durante a execução.

Ao copiar um objeto com a palavra reservada clone, o PHP faz uma cópia superficial de suas propriedades. Propriedades que são referências a outras variáveis continuam sendo referências. Se houver um método __clone(), ele será chamado no novo objeto após a cópia, permitindo ajustar as propriedades necessárias. O programador pode, assim, partir da cópia das propriedades originais e modificar apenas o que precisar de outro valor.

A visibilidade das propriedades e dos métodos é definida pelas palavras-chave public, private e protected. Propriedades declaradas apenas com var são públicas, pois var equivale a public. Membros públicos podem ser acessados de qualquer lugar. O modificador protected restringe o acesso à classe que define o membro e às classes que participam de sua hierarquia de herança, enquanto private restringe a visibilidade à própria classe que o define. Objetos do mesmo tipo podem acessar os membros privados e protegidos uns dos outros, mesmo sendo instâncias distintas.

Exemplo

O programa a seguir é um exemplo básico de programação orientada a objetos em PHP 8:

<?php

abstract class Usuario
{
    protected string $nome;

    public function __construct(string $nome)
    {
        // Coloca a primeira letra em maiúscula e as demais em minúsculas.
        $this->nome = ucfirst(strtolower($nome));
    }

    public function apresentar(): string
    {
        return "Olá, meu nome é " . $this->nome;
    }

    abstract public function atividade(): string;
}

class Estudante extends Usuario
{
    public function __construct(string $nome, private string $curso)
    {
        parent::__construct($nome);
    }

    public function atividade(): string
    {
        return "estudo " . $this->curso;
    }
}

class Docente extends Usuario
{
    public function __construct(string $nome, private array $cursos)
    {
        parent::__construct($nome);
    }

    public function atividade(): string
    {
        return "ensino " . implode(", ", $this->cursos);
    }
}

$estudantes = [
    new Estudante("Alice", "Ciência da Computação"),
    new Estudante("Bruno", "Ciência da Computação"),
    new Estudante("Carlos", "Administração"),
];

$docentes = [
    new Docente("Daniel", ["Ciência da Computação", "Segurança da Informação"]),
    new Docente("Elisa", ["Ciência da Computação", "Programação Gráfica 3D"]),
    new Docente("Fernanda", ["Marketing Digital", "Administração", "Comércio Eletrônico"]),
];

foreach ([$estudantes, $docentes] as $usuarios) {
    echo $usuarios[0]::class . "s:\n";

    array_walk($usuarios, function (Usuario $usuario) {
        echo "{$usuario->apresentar()}, {$usuario->atividade()}\n";
    });
}

O programa produz a seguinte saída:

Estudantes:
Olá, meu nome é Alice, estudo Ciência da Computação
Olá, meu nome é Bruno, estudo Ciência da Computação
Olá, meu nome é Carlos, estudo Administração
Docentes:
Olá, meu nome é Daniel, ensino Ciência da Computação, Segurança da Informação
Olá, meu nome é Elisa, ensino Ciência da Computação, Programação Gráfica 3D
Olá, meu nome é Fernanda, ensino Marketing Digital, Administração, Comércio Eletrônico

Implementações

A implementação original de PHP usa o Zend Engine. Para diferenciá-la das demais implementações, às vezes recebe informalmente o nome "Zend PHP". O Zend Engine compila o código-fonte PHP durante a execução, convertendo-o em um formato interno que consegue executar, e funciona assim como um interpretador. Uma primeira proposta de especificação da linguagem foi publicada em 2014. O repositório dessa especificação a identifica como um trabalho em elaboração.

Na execução de aplicações web, o PHP inicializa e encerra o contexto de cada requisição, embora um mesmo processo possa atender a várias requisições sucessivas. Para reduzir o tempo de execução e evitar a recompilação do código-fonte a cada acesso à página, os scripts podem ser armazenados no formato interno do mecanismo PHP por meio de um cache de opcodes. Esse recurso mantém a forma compilada do script em memória compartilhada, evitando que a análise sintática e a compilação sejam repetidas a cada execução. O Zend Opcache está incorporado ao PHP desde a versão 5.5. Outro cache de opcodes muito utilizado foi o Alternative PHP Cache, ou APC, disponível como extensão da PECL.

Além do Zend PHP, foram desenvolvidas implementações que usam compiladores ou compilação JIT. Elas buscaram ganhos de desempenho, embora nem sempre reproduzissem todo o comportamento da implementação de referência. Entre elas estão:

A sintaxe semelhante a XML do XHP, uma extensão do PHP usada pelo Facebook, participou dos experimentos que antecederam o React. A sintaxe JSX foi desenvolvida a partir de um projeto de Marcel Laverdet, também criador do XHP.

Licenciamento

PHP é um software livre disponibilizado sob a licença BSD de três cláusulas, também chamada de PHP License versão 4. Versões anteriores foram distribuídas sob as licenças PHP então vigentes, que permitem optar pelos termos de uma versão posterior da licença.

A PHP License 3.01, usada antes dessa mudança, continha a seguinte restrição:

Produtos derivados deste software não podem ser chamados de "PHP", nem podem ter "PHP" no nome, sem autorização prévia por escrito de group@php.net. É possível indicar que o software funciona em conjunto com PHP usando a expressão "Foo para PHP", em vez de chamá-lo de "PHP Foo" ou "phpfoo".

Essa restrição ao uso do nome "PHP" tornava as versões anteriores da licença incompatíveis com a GNU General Public License, ou GPL. A antiga licença do Zend Engine também era incompatível, devido a uma cláusula de publicidade semelhante à da licença BSD original.

Desenvolvimento e comunidade

O PHP distribui bibliotecas livres e de código aberto junto com seu código-fonte ou as utiliza na construção dos arquivos binários. A linguagem tem módulos para acessar servidores FTP, servidores de bancos de dados como PostgreSQL, MySQL e Microsoft SQL Server, o banco de dados embutido SQLite e servidores LDAP. As distribuições padrão também oferecem funções familiares a programadores de C, como as da família stdio.

Os desenvolvedores podem escrever extensões em C para acrescentar recursos à linguagem. Essas extensões podem ser compiladas estaticamente junto com o PHP ou carregadas dinamicamente durante a execução. Há extensões para a API do Windows, gerenciamento de processos em sistemas operacionais semelhantes ao Unix, cadeias de caracteres multibyte e Unicode, cURL e formatos de compressão. Também foram criadas extensões para integração com IRC, geração dinâmica de imagens e conteúdo Adobe Flash, síntese de fala e acesso a bancos de dados. Neste último caso, PHP Data Objects, ou PDO, oferece uma camada de abstração. Algumas funções básicas da linguagem, como as que manipulam cadeias de caracteres e arrays, também são implementadas como extensões. O projeto PHP Extension Community Library, ou PECL, mantém um repositório dessas extensões. A maior parte da comunidade trabalha com desenvolvimento web, executando PHP no servidor, que também pode enviar JavaScript para execução no cliente. Entre os usos menos comuns estão as aplicações gráficas independentes, desenvolvidas, por exemplo, com o PHP-GTK, que deixou de receber manutenção, e o controle de drones.

Projetos como o Zephir permitem criar extensões em uma linguagem de alto nível e compilá-las como extensões nativas do PHP. O projeto se propõe a simplificar a criação das extensões e reduzir o tempo de programação e testes em comparação com sua escrita diretamente em C.

Em dezembro de 2018, o PHP Group era formado por dez pessoas: Thies C. Arntzen, Stig Bakken, Shane Caraveo, Andi Gutmans, Rasmus Lerdorf, Sam Ruby, Sascha Schumann, Zeev Suraski, Jim Winstead e Andrei Zmievski.

A Zend Technologies oferece uma certificação em PHP baseada em um exame sobre a linguagem até a versão 8.4. O exame, que antes se baseava no PHP 7 e no PHP 5.5, permite obter o título de desenvolvedor certificado.

The PHP Foundation

The PHP Foundation
Logótipo
Fundação22 de novembro de 2021
FundadoresAutomattic, Laravel, Acquia, Zend, Private Packagist, Symfony, Craft CMS, Tideways, PrestaShop e JetBrains
Websitethephp.foundation

Em 22 de novembro de 2021, a JetBrains anunciou em seu blog a criação da The PHP Foundation para financiar o projeto e o desenvolvimento da linguagem.

Ano Commits Revisões de código RFCs
2022 683 283 8
2023 784 702 17
2024 1.976 1.278 13

A fundação contrata desenvolvedores para trabalhar no repositório central da linguagem. Roman Pronskiy, integrante de seu conselho, afirmou que a intenção era pagar "salários de mercado" a esses profissionais.

O Sovereign Tech Fund, da Alemanha, destinou mais de 200 mil euros à fundação. Em 2026, ela contava com 13 engenheiros em regime integral ou parcial.

Instalação e configuração

Exemplo de saída da função phpinfo() no PHP 7.1

O suporte a PHP pode ser acrescentado a um servidor web como módulo nativo ou por meio de CGI ou FastCGI. As formas de integração são chamadas SAPIs. O Servidor Apache pode carregar um módulo PHP; o Microsoft IIS pode usar FastCGI; e o FrankenPHP integra a linguagem ao Caddy. Historicamente, o PHP também ofereceu módulos para servidores como o iPlanet Web Server, por meio de NSAPI, e o OmniHTTPd, por meio de ISAPI. Essas duas SAPIs foram removidas no PHP 7.0. Quando se usa CGI ou FastCGI, o servidor encaminha as requisições PHP ao processo responsável pela execução dos scripts.

O PHP-FPM, sigla de FastCGI Process Manager, é uma implementação alternativa de FastCGI incluída na distribuição oficial do PHP desde a versão 5.3.3. Acrescenta recursos à implementação mais antiga de FastCGI, sobretudo para servidores web que recebem muitas requisições.

Para executar scripts na linha de comando, pode-se usar o executável PHP CLI. A linguagem oferece uma SAPI para CLI desde a versão 4.3.0. Essa interface foi criada principalmente para o desenvolvimento de aplicações de shell. Seu comportamento difere em alguns pontos das demais SAPIs, embora compartilhe com elas boa parte do funcionamento.

A interface SAPI permite que o PHP se comunique com diferentes servidores web. Na combinação de PHP 5 e Apache 2.0 para Windows, por exemplo, ela era fornecida pelo arquivo DLL php5apache2.dll, um módulo que intermediava a comunicação entre o PHP e o servidor no formato esperado pelo Apache. As interfaces CGI e de linha de comando também são SAPIs do PHP.

O PHP também pode ser usado para escrever aplicações de computador com interface gráfica, por meio do PHP Desktop ou da extensão descontinuada PHP-GTK. O PHP-GTK não faz parte da distribuição oficial. A versão PHP-GTK 2 exige PHP 5.1.0 ou posterior, e sua instalação geralmente é feita pela compilação do código-fonte.

Em ambientes de computação em nuvem, os kits de desenvolvimento de software, ou SDKs, dão acesso aos recursos específicos de cada plataforma. Entre os exemplos estão:

As opções de configuração controlam o funcionamento do núcleo do PHP e de suas extensões. O arquivo php.ini é procurado em locais diferentes, conforme a forma de execução da linguagem. Ele se divide em seções, e algumas opções também podem ser definidas na configuração do servidor web.

Uso

Organização do conjunto de programas LAMP, apresentado aqui com o Squid

PHP é uma linguagem de scripts de uso geral, voltada especialmente ao desenvolvimento web no lado do servidor. Nesse uso, o ambiente de execução do PHP executa o código contido nos arquivos solicitados ao servidor web, geralmente para gerar o conteúdo de páginas dinâmicas ou imagens usadas em sites e em outras aplicações. A linguagem também pode ser usada em scripts de linha de comando e aplicações com interface gráfica no lado do cliente. Funciona em diferentes servidores web, sistemas operacionais e plataformas, e pode se comunicar com diferentes sistemas de gerenciamento de bancos de dados relacionais. A linguagem é gratuita, e o PHP Group disponibiliza seu código-fonte completo para que os usuários possam compilá-lo, modificá-lo e ampliá-lo.

Há também distribuições e adaptações específicas para outras plataformas. Para IBM i, a IBM documenta as opções Seiden PHP+ e ZendPHP. Para OpenVMS, a VMS Software disponibiliza uma adaptação própria; em outubro de 2026, seu catálogo listava as versões V8.0-1A para Integrity e x86 e V5.6-10L para Alpha. Em 2026, a equipe de software aberto da IBM incluiu PHP entre os programas cujas versões recentes haviam sido validadas em Linux na arquitetura IBM Z (s390x).

Geração de uma página web dinâmica com PHP e MySQL no lado do servidor

Criado para gerar páginas web dinâmicas, o PHP tem seu uso concentrado na execução de scripts no servidor. Nesse aspecto, é semelhante a tecnologias que enviam conteúdo dinâmico de um servidor web para um cliente, como Python, ASP.NET, da Microsoft, JavaServer Pages, da Sun Microsystems, e mod_perl. Também foram desenvolvidos frameworks que oferecem componentes e uma estrutura para organizar as aplicações e facilitar o desenvolvimento rápido de aplicações. Entre eles estão PRADO, CakePHP, Symfony, CodeIgniter, Laravel, Yii Framework, Phalcon e Laminas, com recursos semelhantes aos de outros frameworks web.

A arquitetura LAMP difundiu-se como uma forma de implantar aplicações web. PHP costuma ser o "P" desse conjunto, ao lado de Linux, Apache e MySQL, embora a letra também possa designar Python, Perl ou uma combinação dessas linguagens. Há conjuntos semelhantes para Windows e macOS, chamados WAMP e MAMP, cuja primeira letra corresponde ao sistema operacional. Esses pacotes simplificam a instalação e a atualização dos componentes. O macOS já trouxe PHP e Apache em sua instalação padrão, mas deixou de incluir PHP a partir do macOS 12 Monterey.

Para necessidades específicas, o PHP permite escrever extensões em C ou C++, com uma estrutura documentada para integração ao interpretador. Além de acrescentar bibliotecas, essas extensões podem acelerar partes do programa que exigem mais processamento, ao usar uma linguagem compilada. O PHP também pode ser incorporado a outros programas como linguagem interna de scripts, com acesso às estruturas de dados do programa que o hospeda.

A ausência de suporte a múltiplas threads no núcleo da linguagem recebeu críticas. A extensão "pthreads", da PECL, permitia esse uso, mas deixou de receber manutenção e foi substituída pela extensão "parallel".

Além da interface de linha de comando php-cli, foram desenvolvidos mecanismos de integração com ActiveX e Windows Script Host, como o PHPScript, que permite incorporar PHP a aplicações compatíveis com ActiveScript.

Popularidade e estatísticas de uso

PHP é usado em sistemas de gerenciamento de conteúdo web como MediaWiki, WordPress, Joomla, Drupal, Moodle, eZ Publish, eZ Platform e SilverStripe.

Em janeiro de 2013, PHP era usado em mais de 240 milhões de sites, equivalentes a 39% da amostra pesquisada, e estava instalado em 2,1 milhões de servidores web.

Em 22 de outubro de 2026, segundo a W3Techs, PHP era usado por 69,3% dos sites cuja linguagem de programação no servidor podia ser identificada. Entre os sites que usavam PHP, 65,3% utilizavam PHP 8, 26,9% PHP 7, 7,7% PHP 5 e 0,1% PHP 4.

Participação das versões principais entre os sites que usavam PHP em 22 de outubro de 2026
Distribuição das versões principais entre os sites que usavam PHP em 22 de outubro de 2026
Versão Participação
PHP 8 65,3%
PHP 7 26,9%
PHP 5 7,7%
PHP 4 0,1%
Distribuição das versões secundárias entre os sites com PHP 8 em 22 de outubro de 2026. As cores correspondem às linhas da tabela. O PHP 8.6, em desenvolvimento e com participação inferior a 0,1%, não é representado.
Distribuição das versões do PHP em 22 de outubro de 2026
Versão Participação dentro da versão principal Participação estimada no total de sites com PHP
PHP 8.6 (em desenvolvimento) Menos de 0,1% do PHP 8 Menos de 0,1%
PHP 8.5 4,4% do PHP 8 2,9%
PHP 8.4 12,1% do PHP 8 7,9%
PHP 8.3 34,8% do PHP 8 22,7%
PHP 8.2 27,7% do PHP 8 18,1%
PHP 8.1 15,2% do PHP 8 9,9%
PHP 8.0 5,8% do PHP 8 3,8%
PHP 7.4 73,4% do PHP 7 19,7%
PHP 7.3 10,5% do PHP 7 2,8%
PHP 7.2 8,4% do PHP 7 2,3%
PHP 7.1 3,7% do PHP 7 1,0%
PHP 7.0 4,0% do PHP 7 1,1%
PHP 5.6 55,0% do PHP 5 4,2%
PHP 5.5 7,9% do PHP 5 0,6%
PHP 5.4 14,7% do PHP 5 1,1%
PHP 5.3 15,4% do PHP 5 1,2%
PHP 5.2 6,7% do PHP 5 0,5%
PHP 5.1 0,4% do PHP 5 Menos de 0,1%
PHP 5.0 Menos de 0,1% do PHP 5 Menos de 0,1%
PHP 4.4 74,0% do PHP 4 Menos de 0,1%
PHP 4.3 22,0% do PHP 4 Menos de 0,1%
PHP 4.2 2,7% do PHP 4 Menos de 0,1%
PHP 4.1 0,6% do PHP 4 Menos de 0,1%
PHP 4.0 0,6% do PHP 4 Menos de 0,1%

A segunda coluna usa como universo os sites de cada versão principal. A terceira apresenta uma estimativa obtida pela multiplicação dessa proporção pela participação da versão principal entre todos os sites com PHP. Os valores foram arredondados e podem não somar exatamente 100%. A pesquisa também registra identificadores como 7.9, 7.5, 4.20 e 4.6, que não correspondem a versões oficiais e não foram incluídos na tabela.

Segurança

Em um levantamento com dados gerados em 1 de janeiro de 2013, Fabien Coelho classificou como relacionados a PHP cerca de 29% dos registros de vulnerabilidades da National Vulnerability Database e 18% dos produtos nela catalogados. A análise abrangia tanto a linguagem quanto aplicações escritas em PHP e reconhecia as limitações da identificação por palavras-chave. O autor identificou 22 vulnerabilidades no próprio PHP publicadas em 2009. Para detectar automaticamente falhas de validação de entradas, algumas linguagens incluem verificação de contaminação de dados. Propostas para acrescentar esse recurso ao PHP foram rejeitadas ou abandonadas.

Projetos externos, como Suhosin e Snuffleupagus, procuram remover ou modificar recursos da linguagem que podem causar problemas de segurança.

Versões antigas do PHP tinham parâmetros de configuração e valores padrão que tornavam aplicações vulneráveis. Entre os mais conhecidos estavam as diretivas magic_quotes_gpc e register_globals. A segunda transformava parâmetros da URL em variáveis PHP, permitindo que um invasor atribuísse valores a variáveis globais não inicializadas e interferisse na execução do script. Os recursos "magic quotes" e "register globals" foram desaconselhados a partir do PHP 5.3.0 e removidos no PHP 5.4.0.

Manter a execução de PHP habilitada no diretório que armazena arquivos enviados pelos usuários também pode permitir a execução de código malicioso inserido nesses arquivos. Quando o PHP é executado como módulo do Apache, a diretiva engine permite desabilitar essa execução. Para reduzir o risco, os arquivos podem ser armazenados fora do diretório público do servidor e disponibilizados por um script intermediário, ou mantidos em um diretório no qual a execução de código esteja desabilitada.

O carregamento dinâmico de extensões por dl() é controlado pela diretiva enable_dl. A função só está disponível nas SAPIs CLI e embed e na SAPI CGI quando executada pela linha de comando.

Conversões de tipo implícitas podem fazer valores diferentes serem considerados iguais, contrariando a intenção do programador e abrindo falhas de segurança. Por exemplo, '0e1234' == '0' resulta em true, porque cadeias de caracteres que podem ser interpretadas como números são convertidas em números. Nesse caso, o primeiro valor é interpretado como notação científica, 0 × 101234, que equivale a zero. Falhas desse tipo foram descritas no mecanismo de redefinição de senhas do Simple Machines Forum, que comparava partes de hashes em MD5, e no controle de acesso a arquivos do TYPO3, que comparava um hash recebido com o valor calculado. Uma comparação semelhante também foi analisada no código de redefinição de senhas do phpBB, embora a análise sobre o Simple Machines Forum apontasse que o ataque não era viável naquele código do phpBB. A função strcmp e o operador de identidade === evitam a conversão numérica nessa comparação, de modo que '0e1234' === '0' resulta em false. Para comparar valores secretos e também reduzir a exposição a ataques de temporização, a linguagem oferece hash_equals().

Em um levantamento publicado em 2013, Paweł Krawczyk apresentou dados fornecidos pelo Zone-H sobre mais de 90 mil relatos de desfiguração de sites, registrados entre dezembro de 2012 e fevereiro de 2013. A inclusão de arquivos foi a técnica mais frequente nessa amostra, com 53,5% dos relatos. No PHP, a diretiva allow_url_include controla o uso de URLs em construções como include e require e depende de allow_url_fopen também estar habilitada.

Segurança criptográfica

As funções rand() e mt_rand() usam geradores de números pseudoaleatórios que não são seguros para fins criptográficos. Desde o PHP 7.0, a função random_int() usa uma fonte de aleatoriedade criptograficamente segura fornecida pelo sistema.

Um estudo de 2012 demonstrou ataques contra a semente e ataques de recuperação de estado de geradores pseudoaleatórios usados por aplicações PHP. Em 2012, uma GPU de US$ 250 podia realizar até 230 cálculos de MD5 por segundo, enquanto uma GPU de US$ 750 podia realizar quatro vezes esse número no mesmo intervalo. A recuperação da semente ou do estado de um gerador previsível pode permitir a previsão de códigos de redefinição de senha e a tomada de contas de usuários.

Suporte de longo prazo

A equipe de desenvolvimento fornece correções de erros durante dois anos após o lançamento de cada versão secundária, seguidos por dois anos de correções de segurança. Depois desse prazo, a versão chega ao fim de seu ciclo de vida e deixa de receber suporte oficial.

Empresas como a Zend e a Pagely oferecem suporte comercial por períodos mais longos.

PHP2Shell

As vulnerabilidades CVE-2026-109618 e CVE-2026-109619 permitem a execução remota de código em PHP e receberam, em conjunto, o nome PHP2Shell. Sua existência foi anunciada em 20 de outubro de 2026. As correções de emergência e os detalhes das falhas foram publicados no dia seguinte.

Ver Também

Referências

  1. 1 2 Lerdorf, Rasmus (8 de junho de 1995). «Announce: Personal Home Page Tools (PHP Tools)» (em inglês). Consultado em 7 de junho de 2011. Cópia arquivada em 12 de maio de 2013
  2. 1 2 Lerdorf, Rasmus (26 de abril de 2007). «PHP on Hormones – history of PHP presentation by Rasmus Lerdorf given at the MySQL Conference in Santa Clara, California» (em inglês). The Conversations Network. Consultado em 22 de junho de 2009. Arquivado do original (mp3) em 29 de julho de 2013
  3. 1 2 «PHP: News Archive - 21 Oct 2026». www.php.net (em inglês). The PHP Group. 21 de outubro de 2026. Consultado em 22 de outubro de 2026. Cópia arquivada em 23 de outubro de 2026
  4. ↑ «PHP: Function arguments – Manual» (em inglês). Cópia arquivada em 15 de dezembro de 2019
  5. ↑ About this manual. PHP Manual. Em inglês. Consultado em 22 de outubro de 2026.
  6. ↑ Chris Rayns et al. Introduction to CICS Dynamic Scripting. IBM Redbooks. Março de 2011. p. 18. ISBN: 9780738435527. Em inglês. Consultado em 22 de outubro de 2026.
  7. 1 2 Garfield, Larry; Tovilo, Ilija (4 de dezembro de 2020). «PHP RFC: Enumerations». wiki.php.net (em inglês). Consultado em 11 de maio de 2026. Cópia arquivada em 12 de outubro de 2026
  8. ↑ Hack: a new programming language for HHVM. Facebook Engineering. 20 de março de 2014. Em inglês. Consultado em 22 de outubro de 2026.
  9. ↑ «PHP: Hypertext Preprocessor» (em inglês). Consultado em 12 de fevereiro de 2020. Cópia arquivada em 23 de outubro de 2026
  10. 1 2 Krill, Paul (18 de novembro de 2013). «Believe the hype: PHP founder backs Facebook's HipHop technology». InfoWorld (em inglês). Consultado em 13 de outubro de 2022. Cópia arquivada em 6 de fevereiro de 2024
  11. ↑ «Announce: Personal Home Page Tools (PHP Tools)» (em inglês). Consultado em 3 de novembro de 2022. Cópia arquivada em 21 de maio de 2026
  12. 1 2 3 «History of PHP». php.net (em inglês). The PHP Group. Consultado em 22 de outubro de 2026. Cópia arquivada em 11 de outubro de 2026
  13. 1 2 3 4 5 6 7 8 9 «History of PHP and related projects» (em inglês). The PHP Group. Consultado em 25 de fevereiro de 2008. Cópia arquivada em 5 de outubro de 2026
  14. 1 2 3 Jon Duckett; Emme Stone; Chris Ullman (2022). PHP & MySQL: server-side web development (em inglês). Hoboken, Nova Jérsia: John Wiley & Sons, Inc. ISBN 978-1-119-14921-7. LCCN 2021951353. Consultado em 28 de abril de 2026. Cópia arquivada em 30 de abril de 2025
  15. 1 2 What is PHP and what can it do?. PHP Manual. Em inglês. Consultado em 22 de outubro de 2026.
  16. 1 2 «PHP: License Information». www.php.net (em inglês). The PHP Group. Consultado em 22 de outubro de 2026. Cópia arquivada em 12 de outubro de 2026
  17. ↑ The PHP Interpreter. The PHP Group. Em inglês. Consultado em 22 de outubro de 2026.
  18. 1 2 Roman Pronskiy. The PHP Foundation: Impact and Transparency Report 2024. The PHP Foundation. 31 de março de 2025. Em inglês. Consultado em 22 de outubro de 2026.
  19. 1 2 Joel Marcey. Announcing a specification for PHP. HHVM. 30 de julho de 2014. Em inglês. Consultado em 22 de outubro de 2026.
  20. ↑ Lerdorf, Rasmus (20 de julho de 2012). «I wonder why people keep writing that PHP was ever written in Perl. It never was. #php» (em inglês). Twitter. Consultado em 4 de setembro de 2014. Cópia arquivada em 4 de junho de 2026
  21. ↑ Lerdorf, Rasmus (2007). «Slide 3». slides for 'PHP on Hormones' talk (em inglês). The PHP Group. Consultado em 22 de junho de 2009. Cópia arquivada em 19 de fevereiro de 2026
  22. ↑ Lerdorf, Rasmus (8 de junho de 1995). «Announce: Personal Home Page Tools (PHP Tools)» (em inglês). comp.infosystems.www.authoring.cgi. Consultado em 17 de setembro de 2006. Cópia arquivada em 23 de maio de 2013
  23. ↑ «Rasmus Lerdorf, Senior Technical Yahoo: PHP, Behind the Mic» (em inglês). 19 de novembro de 2003. Cópia arquivada em 28 de julho de 2013
  24. ↑ Alshetwi, A.B.; Rahmat, R. A. A. O.; Borhan, M. N.; Ismael, S.; Ali, A.; Irtema, H. I. M.; Alfakhria, A. Y. (2018). «Web-Based Expert System for Optimizing of Traffic Road in Developing Countries». International Journal of Engineering & Technology (em inglês). 7 (2.29): 876. doi:10.14419/ijet.v7i2.29.14275. Consultado em 13 de fevereiro de 2024
  25. ↑ «Problems with PHP» (em inglês). Consultado em 20 de dezembro de 2010. Cópia arquivada em 19 de agosto de 2026
  26. ↑ «php.internals: Re: Function name consistency». news.php.net (em inglês). 28 de dezembro de 2013. Consultado em 9 de fevereiro de 2014. Cópia arquivada em 5 de dezembro de 2025
  27. ↑ Rasmus Lerdorf (16 de dezembro de 2013). «Re: Flexible function naming» (em inglês). php.internals. Consultado em 26 de dezembro de 2013. Cópia arquivada em 4 de julho de 2026
  28. ↑ «PHP, Acronym Meaning Vote». PHP.net (em inglês). Arquivado do original em 15 de agosto de 2000
  29. ↑ «Zend Engine version 2.0: Feature Overview and Design» (em inglês). Zend Technologies Ltd. Consultado em 17 de setembro de 2006. Arquivado do original em 19 de julho de 2006
  30. ↑ «php.net 2007 news archive» (em inglês). The PHP Group. 13 de julho de 2007. Consultado em 22 de fevereiro de 2008. Cópia arquivada em 22 de outubro de 2026
  31. ↑ Kerner, Sean Michael (1 de fevereiro de 2008). «PHP 4 is Dead, Long Live PHP 5» (em inglês). InternetNews. Consultado em 16 de dezembro de 2018. Cópia arquivada em 6 de agosto de 2018
  32. ↑ «PHP 5.0.0 Released!» (em inglês). The PHP Group. 13 de julho de 2004. Consultado em 22 de outubro de 2026. Cópia arquivada em 8 de outubro de 2026
  33. ↑ Trachtenberg, Adam (15 de julho de 2004). «Why PHP 5 Rocks!» (em inglês). O'Reilly. Consultado em 22 de fevereiro de 2008. Arquivado do original em 31 de março de 2016
  34. ↑ «GoPHP5» (em inglês). Arquivado do original em 17 de julho de 2011
  35. ↑ «PHP projects join forces to Go PHP 5» (PDF). GoPHP5 Press Release (em inglês). Consultado em 23 de fevereiro de 2008. Arquivado do original (PDF) em 4 de agosto de 2019
  36. ↑ «GoPHP5» (em inglês). GoPHP5. Consultado em 22 de fevereiro de 2008. Arquivado do original em 27 de abril de 2011
  37. 1 2 «Types: Strings (PHP Manual)». PHP.net (em inglês). The PHP Group. Consultado em 22 de setembro de 2013. Cópia arquivada em 14 de outubro de 2026
  38. ↑ «Details of the String Type (PHP Manual)». PHP.net (em inglês). Consultado em 22 de setembro de 2021. Cópia arquivada em 14 de outubro de 2026
  39. ↑ Andrei Zmievski (10 de agosto de 2005). «PHP Unicode support design document» (em inglês). Consultado em 9 de fevereiro de 2014. Cópia arquivada em 6 de janeiro de 2026
  40. ↑ «PHP 5.5 or 6.0» (em inglês). Consultado em 9 de fevereiro de 2014. Cópia arquivada em 2 de dezembro de 2025
  41. ↑ Andrei Zmievski (22 de abril de 2011). «The Good, the Bad, and the Ugly: What Happened to Unicode and PHP 6» (em inglês). Consultado em 9 de fevereiro de 2014
  42. ↑ Rasmus Lerdorf (11 de março de 2010). «PHP 6» (em inglês). Consultado em 7 de fevereiro de 2014. Cópia arquivada em 7 de março de 2026
  43. ↑ Rasmus Lerdorf (11 de março de 2010). «[PHP-DEV] PHP 6» (em inglês). PHP Internals, arquivo MARC. Consultado em 22 de outubro de 2026
  44. 1 2 Andrea Faulds e Zeev Suraski (22 de julho de 2014). «PHP RFC: Name of Next Release of PHP». php.net (em inglês). The PHP Group. Consultado em 22 de outubro de 2026. Cópia arquivada em 1 de outubro de 2026
  45. ↑ «Late Static Binding in PHP» (em inglês). Digital Sandwich. 23 de fevereiro de 2006. Consultado em 25 de março de 2008. Cópia arquivada em 8 de fevereiro de 2026
  46. ↑ «Static Keyword» (em inglês). The PHP Group. Consultado em 25 de março de 2008. Cópia arquivada em 11 de julho de 2026
  47. 1 2 3 4 «PHP: Release Process» (em inglês). 20 de junho de 2011. Consultado em 6 de outubro de 2013. Cópia arquivada em 3 de outubro de 2026
  48. ↑ «PHP for Windows: Binaries and sources releases (5.3)». php.net (em inglês). Consultado em 29 de outubro de 2013. Cópia arquivada em 7 de março de 2026
  49. ↑ «PHP for Windows: Binaries and sources releases (5.4)». php.net (em inglês). Consultado em 29 de outubro de 2013. Cópia arquivada em 7 de março de 2026
  50. ↑ «PHP for Windows: Binaries and sources releases (5.5)». php.net (em inglês). Consultado em 29 de outubro de 2013. Cópia arquivada em 7 de março de 2026
  51. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 «Unsupported Branches». php.net (em inglês). Consultado em 22 de outubro de 2026
  52. ↑ «The Neverending Muppet Debate of PHP 6 v PHP 7» (em inglês). Consultado em 19 de novembro de 2015. Arquivado do original em 19 de novembro de 2015
  53. ↑ «Re: [PHP-DEV] [VOTE] [RFC] Name of Next Release of PHP (again)» (em inglês). 30 de julho de 2014. Consultado em 30 de julho de 2014. Cópia arquivada em 17 de fevereiro de 2026
  54. ↑ «phpng: Refactored PHP Engine with Big Performance Improvement». news.php.net (em inglês). Cópia arquivada em 27 de dezembro de 2025
  55. ↑ «PHP: rfc:phpng». php.net (em inglês). Consultado em 16 de dezembro de 2014. Cópia arquivada em 14 de abril de 2026
  56. 1 2 «PHP: phpng». php.net (em inglês). Consultado em 15 de julho de 2014. Cópia arquivada em 10 de junho de 2026
  57. ↑ Stogov, Dmitry (4 de dezembro de 2015). «It's not a secret that some #PHP7 optimization ideas came from HHVM, LuaJIT and V8. Thank you @HipHopVM @SaraMG. #php7thankyou» (em inglês). Cópia arquivada em 5 de outubro de 2025
  58. ↑ «Merge branch 'ZendEngine3'». github.com (em inglês). 5 de dezembro de 2014. Consultado em 5 de dezembro de 2014. Cópia arquivada em 14 de janeiro de 2026
  59. 1 2 «PHP RFC: Uniform Variable Syntax». php.net (em inglês). 31 de maio de 2014. Consultado em 30 de julho de 2014. Cópia arquivada em 13 de abril de 2026
  60. ↑ «PHP RFC: Fix "foreach" behavior». php.net (em inglês). Consultado em 21 de maio de 2015. Cópia arquivada em 16 de maio de 2026
  61. 1 2 3 «PHP RFC: Integer Semantics». php.net (em inglês). Consultado em 21 de maio de 2015. Cópia arquivada em 13 de abril de 2026. Converter NaN e infinito sempre em zero ao convertê-los em inteiros torna o comportamento consistente entre plataformas e menos surpreendente.
  62. ↑ «PHP RFC: ZPP Failure on Overflow». php.net (em inglês). Consultado em 21 de maio de 2015. Cópia arquivada em 12 de junho de 2026
  63. ↑ «PHP RFC: Removal of dead or not yet PHP7 ported SAPIs and extensions». php.net (em inglês). Consultado em 21 de maio de 2015. Cópia arquivada em 12 de julho de 2026
  64. ↑ «PHP RFC: Remove alternative PHP tags». php.net (em inglês). Consultado em 21 de maio de 2015. Cópia arquivada em 4 de setembro de 2026
  65. 1 2 3 «RFC: Return Types». php.net (em inglês). 27 de janeiro de 2015. Consultado em 28 de janeiro de 2015. Cópia arquivada em 12 de julho de 2026
  66. 1 2 «PHP: rfc:typed_properties_v2». wiki.php.net (em inglês). Consultado em 4 de abril de 2019. Cópia arquivada em 12 de junho de 2026
  67. 1 2 3 4 5 6 «RFC: Scalar Type Declarations». php.net (em inglês). 16 de março de 2015. Consultado em 17 de março de 2015. Cópia arquivada em 6 de junho de 2026
  68. 1 2 «PHP: rfc:iterable». php.net (em inglês). 10 de junho de 2016. Consultado em 30 de junho de 2023. Cópia arquivada em 13 de outubro de 2026
  69. 1 2 «PHP: rfc:nullable_types». php.net (em inglês). 10 de abril de 2014. Consultado em 30 de junho de 2023. Cópia arquivada em 13 de outubro de 2026
  70. 1 2 «PHP: rfc:void_return_type». php.net (em inglês). 9 de novembro de 2015. Consultado em 14 de novembro de 2015. Cópia arquivada em 31 de maio de 2026
  71. 1 2 «PHP: rfc:object-typehint». wiki.php.net (em inglês). Cópia arquivada em 13 de outubro de 2026
  72. 1 2 «PHP: rfc:isset_ternary». php.net (em inglês). Consultado em 16 de dezembro de 2014. Cópia arquivada em 22 de setembro de 2026
  73. 1 2 «Combined Comparison (Spaceship) Operator». php.net (em inglês). Consultado em 21 de maio de 2015. Cópia arquivada em 13 de abril de 2026
  74. 1 2 «PHP: rfc:short_list_syntax». php.net (em inglês). 7 de abril de 2016. Consultado em 30 de junho de 2023. Cópia arquivada em 16 de maio de 2026
  75. 1 2 «PHP: rfc:multiple-catch». php.net (em inglês). 6 de março de 2016. Consultado em 30 de junho de 2023. Cópia arquivada em 11 de julho de 2026
  76. 1 2 «PHP: rfc:flexible_heredoc_nowdoc_syntaxes». wiki.php.net (em inglês). Cópia arquivada em 16 de maio de 2026
  77. 1 2 «PHP: rfc:null_coalesce_equal_operator». wiki.php.net (em inglês). Consultado em 4 de abril de 2019. Cópia arquivada em 12 de julho de 2026
  78. 1 2 3 Brent. «What's new in PHP 8». Stitcher (em inglês). Consultado em 22 de setembro de 2020. Cópia arquivada em 17 de outubro de 2026
  79. ↑ «PHP 8 Released». PHP (em inglês). Consultado em 27 de novembro de 2020. Cópia arquivada em 15 de outubro de 2026
  80. ↑ Brent. «PHP 8: JIT performance in real-life web applications». Stitcher.io (em inglês). Consultado em 4 de outubro de 2020. Cópia arquivada em 3 de outubro de 2026
  81. ↑ Rethams, Derick. «PHP 8: A Quick Look at JIT» (em inglês)
  82. ↑ Popov, Nikita (13 de julho de 2020). «"What's new in PHP 8.0?" Nikita Popov» (em inglês). PHP fwdays. Consultado em 4 de outubro de 2020. Cópia arquivada em 11 de dezembro de 2021
  83. ↑ Daniele, Carlo (25 de maio de 2020). «What's New in PHP 8 (Features, Improvements, and the JIT Compiler)». Kinsta (em inglês). Consultado em 24 de dezembro de 2020. Cópia arquivada em 13 de outubro de 2026
  84. 1 2 Eberlei, Benjamin; Schröder, Martin (9 de março de 2020). «PHP RFC: Attributes v2». wiki.php.net (em inglês). Consultado em 11 de maio de 2026. Cópia arquivada em 27 de setembro de 2026
  85. ↑ Karunaratne, Ayesh. «PHP 8.2: Sensitive Parameter value redaction support». PHP.Watch (em inglês). Consultado em 12 de outubro de 2025. Cópia arquivada em 15 de junho de 2026
  86. 1 2 «PHP: rfc:marking_overriden_methods». wiki.php.net (em inglês). Consultado em 17 de dezembro de 2023. Cópia arquivada em 12 de agosto de 2026
  87. ↑ «PHP: rfc:deprecated_attribute». wiki.php.net (em inglês). Consultado em 12 de outubro de 2025. Cópia arquivada em 11 de julho de 2026
  88. ↑ «PHP: rfc:marking_return_value_as_important». wiki.php.net (em inglês). Consultado em 12 de outubro de 2025
  89. ↑ «PHP: rfc:delayedtargetvalidation_attribute». wiki.php.net (em inglês). Consultado em 14 de novembro de 2025. Cópia arquivada em 12 de julho de 2026
  90. ↑ Scherzer, Daniel (20 de agosto de 2025). «Blog: #[\DelayedTargetValidation] Attribute Explained». scherzer.dev (em inglês). Consultado em 14 de novembro de 2025. Cópia arquivada em 24 de setembro de 2026
  91. 1 2 «PHP RFC: Union Types 2.0». wiki.php.net (em inglês). Consultado em 14 de agosto de 2020. Cópia arquivada em 12 de julho de 2026
  92. 1 2 «PHP: rfc:pure-intersection-types». wiki.php.net (em inglês). Consultado em 26 de novembro de 2021. Cópia arquivada em 6 de junho de 2026
  93. 1 2 «PHP: rfc:dnf_types». wiki.php.net (em inglês). Consultado em 7 de fevereiro de 2023. Cópia arquivada em 24 de setembro de 2026
  94. 1 2 «PHP: rfc:noreturn_type». wiki.php.net (em inglês). Consultado em 26 de novembro de 2021. Cópia arquivada em 28 de maio de 2026
  95. 1 2 «PHP: rfc:null-false-standalone-types». wiki.php.net (em inglês). Consultado em 16 de junho de 2022. Cópia arquivada em 5 de outubro de 2026
  96. 1 2 «PHP: rfc:true-type». wiki.php.net (em inglês). Consultado em 16 de junho de 2022. Cópia arquivada em 5 de outubro de 2026
  97. 1 2 «PHP RFC: Saner string to number comparisons». wiki.php.net (em inglês). Consultado em 14 de agosto de 2020. Cópia arquivada em 22 de setembro de 2026
  98. 1 2 «PHP RFC: Saner numeric strings». wiki.php.net (em inglês). Consultado em 14 de agosto de 2020. Cópia arquivada em 16 de maio de 2026
  99. 1 2 «PHP: rfc:lsp_errors». wiki.php.net (em inglês). Consultado em 26 de maio de 2019. Cópia arquivada em 13 de maio de 2026
  100. ↑ Karunaratne, Ayesh. «PHP 8.1: Passing 'null' to non-nullable internal function parameters is deprecated». PHP.Watch (em inglês). Consultado em 12 de outubro de 2025. Cópia arquivada em 3 de setembro de 2026
  101. ↑ Karunaratne, Ayesh. «PHP 8.2: Dynamic Properties are deprecated». PHP.Watch (em inglês). Consultado em 12 de outubro de 2025. Cópia arquivada em 23 de junho de 2026
  102. 1 2 Tovilo, Ilija (22 de maio de 2020). «PHP RFC: Match expression v2». wiki.php.net (em inglês). Consultado em 29 de novembro de 2020. Cópia arquivada em 6 de junho de 2026
  103. ↑ Garfield, Larry; Tovilo, Ilija (11 de novembro de 2020). «PHP RFC: Pattern Matching». wiki.php.net (em inglês). Consultado em 22 de outubro de 2026. Cópia arquivada em 5 de julho de 2026
  104. ↑ Supported Versions. The PHP Group. Em inglês. Consultado em 22 de outubro de 2026.
  105. ↑ Rasmus Lerdorf. PHP Releases (Introduction to PHP). PHP.net. Em inglês. Consultado em 22 de outubro de 2026.
  106. ↑ «PHP 4.0.0 Released» (em inglês). Consultado em 25 de outubro de 2020. Cópia arquivada em 5 de outubro de 2025
  107. 1 2 3 4 «PHP: PHP 4 ChangeLog» (em inglês). The PHP Group. 3 de janeiro de 2008. Consultado em 22 de fevereiro de 2008. Cópia arquivada em 7 de outubro de 2026
  108. ↑ «PHP 4.1.0 Release Announcement» (em inglês). Consultado em 25 de outubro de 2020. Cópia arquivada em 20 de setembro de 2026
  109. ↑ «PHP 4.2.0 Release Announcement» (em inglês). Consultado em 25 de outubro de 2020. Cópia arquivada em 10 de outubro de 2026
  110. ↑ «PHP 4.3.0 Release Announcement» (em inglês). Consultado em 25 de outubro de 2020. Cópia arquivada em 15 de maio de 2026
  111. ↑ «Using PHP from the command line». PHP Manual (em inglês). The PHP Group. Consultado em 11 de setembro de 2009. Cópia arquivada em 23 de outubro de 2026
  112. 1 2 «PHP 4.4.0 Release Announcement». PHP Manual (em inglês). The PHP Group. Consultado em 25 de outubro de 2020. Cópia arquivada em 3 de agosto de 2026
  113. ↑ «PHP 5.0.0 Released!» (em inglês). Consultado em 25 de outubro de 2020. Cópia arquivada em 7 de agosto de 2026
  114. 1 2 3 «PHP: PHP 5 ChangeLog» (em inglês). The PHP Group. 8 de novembro de 2007. Consultado em 22 de fevereiro de 2008. Cópia arquivada em 15 de outubro de 2026
  115. ↑ «PHP 5.1.0 Release Announcement» (em inglês). Consultado em 25 de outubro de 2020. Cópia arquivada em 15 de maio de 2026
  116. 1 2 PHP manual: PDO. php.net. The PHP Group. 15 de novembro de 2011. Em inglês. Consultado em 15 de novembro de 2011.
    Darryl Patterson. Simplify Business Logic with PHP DataObjects , O'Reilly Media. ibm.com. 5 de agosto de 2004. Em inglês. Arquivado do original em 16 de dezembro de 2014. Consultado em 16 de dezembro de 2014.
    IBM , United States. Em inglês. Consultado em 16 de dezembro de 2014.
    Five common PHP database problems. ibm.com. 1 de agosto de 2006. Em inglês. Consultado em 13 de junho de 2013.
    IBM Redbooks , Developing PHP Applications for IBM Data Servers. redbooks.ibm.com. Em inglês. Consultado em 16 de dezembro de 2014.
    php[architect Magazine – The Journal for PHP Programmers]. www.phparch.com. Em inglês.
    Paul Krill. PHP catching on at enterprises, vying with Java. InfoWorld. 19 de outubro de 2005. Em inglês. Arquivado do original em 13 de julho de 2014.
  117. ↑ «PHP 5.2.0 Release Announcement» (em inglês). Consultado em 25 de outubro de 2020. Cópia arquivada em 12 de outubro de 2026
  118. ↑ «PHP 5.3.0 Release Announcement» (em inglês). Consultado em 25 de outubro de 2020. Cópia arquivada em 16 de setembro de 2026
  119. ↑ «PHP 5.4.0 Release Announcement» (em inglês). Consultado em 25 de outubro de 2020. Cópia arquivada em 21 de outubro de 2026
  120. ↑ «Built-in web server» (em inglês). Consultado em 26 de março de 2012. Cópia arquivada em 23 de setembro de 2026
  121. ↑ «PHP 5.5.0 Release Announcement» (em inglês). Consultado em 25 de outubro de 2020. Cópia arquivada em 14 de outubro de 2026
  122. ↑ «PHP 5.5.0 changes». php.net (em inglês). Consultado em 3 de março de 2015. Arquivado do original em 1 de março de 2015
  123. ↑ «PHP 5.6.0 Release Announcement» (em inglês). Consultado em 25 de outubro de 2020. Cópia arquivada em 16 de junho de 2026
  124. ↑ «Migrating from PHP 5.5.x to PHP 5.6.x». php.net (em inglês). Consultado em 24 de março de 2014. Cópia arquivada em 11 de julho de 2026
  125. ↑ Corbet, Jonathan (24 de março de 2010). «Resetting PHP 6» (em inglês). Cópia arquivada em 5 de junho de 2026. Há livros que anunciam a cobertura do PHP 6 desde pelo menos 2008, embora, em março de 2010, essa versão ainda esteja longe do lançamento.
  126. ↑ Krill, Paul (31 de outubro de 2014). «PHP 7 moves full speed ahead». InfoWorld (em inglês). Cópia arquivada em 27 de janeiro de 2019. "Vamos pular a versão 6", disse Gutmans, porque os planos antigos para ela eram diferentes dos trabalhos em andamento.
  127. ↑ «News Archive – 2018: PHP 7.2.9 Released». php.net (em inglês). 16 de agosto de 2018. Consultado em 16 de agosto de 2018. Cópia arquivada em 22 de outubro de 2026
  128. ↑ «PHP: rfc:size_t_and_int64_next». php.net (em inglês). Consultado em 16 de dezembro de 2014. Cópia arquivada em 12 de junho de 2026
  129. ↑ «PHP: rfc:abstract_syntax_tree». php.net (em inglês). Consultado em 16 de dezembro de 2014. Cópia arquivada em 4 de julho de 2026
  130. ↑ «PHP: rfc:closure_apply». php.net (em inglês). Consultado em 16 de dezembro de 2014. Cópia arquivada em 11 de julho de 2026
  131. ↑ «RFC: Unicode Codepoint Escape Syntax» (em inglês). 24 de novembro de 2014. Consultado em 19 de dezembro de 2014. Cópia arquivada em 12 de julho de 2026
  132. ↑ «PHP RFC: Generator Delegation». php.net (em inglês). Consultado em 21 de maio de 2015. Cópia arquivada em 16 de maio de 2026
  133. ↑ «PHP RFC: Anonymous Classes». php.net (em inglês). Consultado em 21 de maio de 2015. Cópia arquivada em 12 de julho de 2026
  134. ↑ «PHP RFC: Easy User-land CSPRNG». php.net (em inglês). Consultado em 21 de maio de 2015. Cópia arquivada em 6 de junho de 2026
  135. ↑ «PHP RFC: Exceptions in the engine (for PHP 7)». php.net (em inglês). Consultado em 21 de maio de 2015
  136. ↑ «PHP RFC: Group Use Declarations». php.net (em inglês). Consultado em 21 de maio de 2015. Cópia arquivada em 8 de março de 2026
  137. ↑ «PHP: rfc:class_constant_visibility». php.net (em inglês). 27 de outubro de 2015. Consultado em 8 de dezembro de 2015. Cópia arquivada em 16 de maio de 2026
  138. ↑ «PHP: rfc:libsodium». wiki.php.net (em inglês). Cópia arquivada em 13 de outubro de 2026
  139. ↑ «PHP: rfc:allow-abstract-function-override». wiki.php.net (em inglês). Cópia arquivada em 13 de outubro de 2026
  140. ↑ «PHP: rfc:parameter-no-type-variance». wiki.php.net (em inglês). Cópia arquivada em 13 de outubro de 2026
  141. ↑ «PHP: todo:php73». wiki.php.net (em inglês). Cópia arquivada em 12 de julho de 2026
  142. ↑ «PHP: rfc:list_reference_assignment». wiki.php.net (em inglês). Cópia arquivada em 17 de maio de 2026
  143. ↑ «PHP: rfc:pcre2-migration». wiki.php.net (em inglês). Cópia arquivada em 20 de maio de 2026
  144. ↑ «PHP: hrtime, Manual». php.net (em inglês). Cópia arquivada em 26 de setembro de 2026
  145. ↑ «PHP 7.4.0 Released!». php.net (em inglês). Consultado em 28 de novembro de 2019. Cópia arquivada em 15 de outubro de 2026
  146. ↑ «PHP: rfc:preload». wiki.php.net (em inglês). Consultado em 4 de abril de 2019. Cópia arquivada em 16 de maio de 2026
  147. ↑ «PHP: rfc:improve-openssl-random-pseudo-bytes». wiki.php.net (em inglês). Consultado em 4 de abril de 2019. Cópia arquivada em 12 de julho de 2026
  148. ↑ «PHP: rfc:weakrefs». wiki.php.net (em inglês). Consultado em 5 de abril de 2019. Cópia arquivada em 23 de julho de 2026
  149. ↑ «PHP: rfc:ffi». wiki.php.net (em inglês). Consultado em 5 de abril de 2019. Cópia arquivada em 6 de junho de 2026
  150. ↑ «PHP: rfc:permanent_hash_ext». wiki.php.net (em inglês). Consultado em 5 de abril de 2019. Cópia arquivada em 6 de junho de 2026
  151. ↑ «PHP: rfc:password_registry». wiki.php.net (em inglês). Consultado em 5 de abril de 2019. Cópia arquivada em 16 de maio de 2026
  152. ↑ «PHP: rfc:mb_str_split». wiki.php.net (em inglês). Consultado em 5 de abril de 2019. Cópia arquivada em 11 de fevereiro de 2026
  153. ↑ «PHP: rfc:reference_reflection». wiki.php.net (em inglês). Consultado em 5 de abril de 2019
  154. ↑ «PHP: rfc:deprecate-and-remove-ext-wddx». wiki.php.net (em inglês). Consultado em 5 de abril de 2019
  155. ↑ «PHP: rfc:custom_object_serialization». wiki.php.net (em inglês). Consultado em 5 de abril de 2019. Cópia arquivada em 22 de julho de 2026
  156. ↑ «PHP: rfc:jit». wiki.php.net (em inglês). Consultado em 5 de abril de 2019. Cópia arquivada em 20 de agosto de 2026
  157. ↑ «PHP: rfc:negative_array_index». wiki.php.net (em inglês). Consultado em 5 de abril de 2019. Cópia arquivada em 18 de agosto de 2026
  158. ↑ «PHP RFC: Validation for abstract trait methods». wiki.php.net (em inglês). Consultado em 14 de agosto de 2020. Cópia arquivada em 12 de julho de 2026
  159. ↑ «PHP RFC: Stricter type checks for arithmetic/bitwise operators». wiki.php.net (em inglês). Consultado em 14 de agosto de 2020. Cópia arquivada em 6 de junho de 2026
  160. ↑ «PHP RFC: Reclassifying engine warnings». wiki.php.net (em inglês). Consultado em 14 de agosto de 2020. Cópia arquivada em 20 de maio de 2026
  161. ↑ «PHP: rfc:consistent_type_errors». wiki.php.net (em inglês). Consultado em 5 de abril de 2019. Cópia arquivada em 16 de maio de 2026
  162. ↑ «PHP RFC: Locale-independent float to string cast». wiki.php.net (em inglês). Consultado em 14 de agosto de 2020. Cópia arquivada em 16 de maio de 2026
  163. ↑ «PHP RFC: Variable Syntax Tweaks». wiki.php.net (em inglês). Consultado em 14 de agosto de 2020. Cópia arquivada em 8 de março de 2026
  164. ↑ «PHP RFC: Attribute Amendments». wiki.php.net (em inglês). Consultado em 14 de agosto de 2020. Cópia arquivada em 13 de abril de 2026
  165. ↑ «PHP RFC: Shorter Attribute Syntax». wiki.php.net (em inglês). Consultado em 20 de junho de 2020. Cópia arquivada em 13 de abril de 2026
  166. ↑ «PHP RFC: Shorter Attribute Syntax Change». wiki.php.net (em inglês). Consultado em 14 de agosto de 2020. Cópia arquivada em 6 de junho de 2026
  167. ↑ «PHP RFC: Named Arguments». wiki.php.net (em inglês). Consultado em 14 de agosto de 2020. Cópia arquivada em 12 de julho de 2026
  168. ↑ «PHP RFC: Constructor Property Promotion». wiki.php.net (em inglês). Consultado em 14 de agosto de 2020. Cópia arquivada em 6 de junho de 2026
  169. ↑ «PHP RFC: Mixed Type v2». wiki.php.net (em inglês). Consultado em 14 de agosto de 2020. Cópia arquivada em 11 de julho de 2026
  170. ↑ «PHP RFC: Static return type». wiki.php.net (em inglês). Consultado em 14 de agosto de 2020. Cópia arquivada em 12 de julho de 2026
  171. ↑ «PHP RFC: Nullsafe operator». wiki.php.net (em inglês). Consultado em 14 de agosto de 2020. Cópia arquivada em 29 de setembro de 2026
  172. ↑ «PHP RFC: non-capturing catches». wiki.php.net (em inglês). Consultado em 14 de agosto de 2020. Cópia arquivada em 6 de junho de 2026
  173. ↑ «PHP RFC: throw expression». wiki.php.net (em inglês). Consultado em 14 de agosto de 2020. Cópia arquivada em 11 de julho de 2026
  174. ↑ Andre, Tyson. «PHP RFC: Always available JSON extension». PHP (em inglês). Consultado em 25 de outubro de 2020. Cópia arquivada em 18 de abril de 2026
  175. ↑ «PHP: todo:php81». wiki.php.net (em inglês). Consultado em 16 de junho de 2022. Cópia arquivada em 14 de maio de 2026
  176. ↑ «PHP RFC: Explicit octal integer literal notation». wiki.php.net (em inglês). Consultado em 25 de novembro de 2020. Cópia arquivada em 13 de agosto de 2026
  177. ↑ «PHP: rfc:readonly_properties_v2». wiki.php.net (em inglês). Consultado em 26 de novembro de 2021. Cópia arquivada em 2 de outubro de 2026
  178. ↑ «PHP: rfc:first_class_callable_syntax». wiki.php.net (em inglês). Consultado em 26 de novembro de 2021. Cópia arquivada em 14 de julho de 2026
  179. ↑ «PHP: rfc:new_in_initializers». wiki.php.net (em inglês). Consultado em 26 de novembro de 2021
  180. ↑ «PHP: rfc:final_class_const». wiki.php.net (em inglês). Consultado em 26 de novembro de 2021. Cópia arquivada em 16 de maio de 2026
  181. ↑ «PHP: rfc:fibers». wiki.php.net (em inglês). Consultado em 26 de novembro de 2021. Cópia arquivada em 14 de julho de 2026
  182. ↑ «PHP: todo:php82». wiki.php.net (em inglês). Consultado em 16 de junho de 2022. Cópia arquivada em 20 de maio de 2026
  183. ↑ «PHP: rfc:readonly_classes». wiki.php.net (em inglês). Consultado em 16 de junho de 2022. Cópia arquivada em 8 de setembro de 2026
  184. ↑ «PHP: rfc:strtolower-ascii». wiki.php.net (em inglês). Consultado em 16 de junho de 2022. Cópia arquivada em 28 de setembro de 2026
  185. ↑ «PHP: rfc:constants_in_traits». wiki.php.net (em inglês). Consultado em 7 de fevereiro de 2023. Cópia arquivada em 24 de setembro de 2026
  186. ↑ «PHP 8.3.0 Released!». php.net (em inglês). 23 de novembro de 2023. Consultado em 24 de novembro de 2023. Cópia arquivada em 22 de outubro de 2026
  187. ↑ «PHP: rfc:typed_class_constants». wiki.php.net (em inglês). Consultado em 17 de dezembro de 2023. Cópia arquivada em 11 de julho de 2026
  188. ↑ «PHP: rfc:dynamic_class_constant_fetch». wiki.php.net (em inglês). Consultado em 17 de dezembro de 2023. Cópia arquivada em 18 de julho de 2026
  189. ↑ «PHP: rfc:readonly_amendments». wiki.php.net (em inglês). Consultado em 17 de dezembro de 2023. Cópia arquivada em 10 de agosto de 2026
  190. ↑ «PHP: rfc:json_validate». wiki.php.net (em inglês). Consultado em 17 de dezembro de 2023. Cópia arquivada em 11 de julho de 2026
  191. ↑ «PHP: rfc:randomizer_additions». wiki.php.net (em inglês). Consultado em 17 de dezembro de 2023. Cópia arquivada em 15 de julho de 2026
  192. ↑ «PHP: todo: php84». php.net (em inglês). 26 de março de 2024. Consultado em 26 de março de 2024. Cópia arquivada em 20 de maio de 2026
  193. ↑ «PHP: todo: php85». php.net (em inglês). 16 de abril de 2024. Consultado em 16 de abril de 2025. Cópia arquivada em 13 de outubro de 2026
  194. ↑ «PHP: rfc:pipe-operator-v3». wiki.php.net (em inglês). Consultado em 6 de agosto de 2025. Cópia arquivada em 22 de setembro de 2026
  195. ↑ «PHP: todo: php86». php.net (em inglês). 16 de abril de 2024. Consultado em 3 de setembro de 2026. Cópia arquivada em 22 de outubro de 2026
  196. 1 2 «PHP: RFC:release_cycle_update» (em inglês). Cópia arquivada em 7 de outubro de 2026
  197. 1 2 3 4 Usage statistics of PHP for websites. W3Techs. Dados de 22 de outubro de 2026. Em inglês. Consultado em 22 de outubro de 2026.
  198. 1 2 «PHP: ElePHPant». www.php.net (em inglês). Consultado em 22 de outubro de 2026. Cópia arquivada em 22 de outubro de 2026
  199. 1 2 «The PHP Mascot's Birth – Creator Of The elePHPant Vincent Pontier Reveals The True Story!». 7php.com (em inglês). Consultado em 22 de outubro de 2026. Cópia arquivada em 27 de julho de 2026
  200. ↑ «ElePHPant». PHP.earth (em inglês). Consultado em 22 de outubro de 2026. Cópia arquivada em 6 de fevereiro de 2026
  201. ↑ «A Field Guide to Elephpants». afieldguidetoelephpants.net (em inglês). Cópia arquivada em 18 de setembro de 2026
  202. 1 2 «PHP: rfc:shortags». php.net (em inglês). 3 de abril de 2008. Consultado em 8 de maio de 2014. Cópia arquivada em 12 de junho de 2026
  203. ↑ «PHP: Basic syntax» (em inglês). The PHP Group. Consultado em 22 de fevereiro de 2008. Cópia arquivada em 22 de outubro de 2026
  204. ↑ «Basic Coding Standard» (em inglês). PHP Framework Interoperability Group. Consultado em 3 de janeiro de 2016. Cópia arquivada em 14 de outubro de 2026
  205. ↑ «echo, Manual». php.net (em inglês). Consultado em 17 de fevereiro de 2014. Cópia arquivada em 14 de outubro de 2026
  206. ↑ «Description of core php.ini directives, Manual». php.net (em inglês). 17 de março de 2002. Consultado em 17 de fevereiro de 2014. Cópia arquivada em 21 de outubro de 2026
  207. ↑ «Your first PHP-enabled page» (em inglês). The PHP Group. Consultado em 25 de fevereiro de 2008. Cópia arquivada em 16 de outubro de 2026
  208. ↑ Bray, Tim; et al. (26 de novembro de 2008). «Processing Instructions». Extensible Markup Language (XML) 1.0 (Fifth Edition) (em inglês). W3C. Consultado em 18 de junho de 2009. Cópia arquivada em 14 de outubro de 2026
  209. ↑ «Variables» (em inglês). The PHP Group. Consultado em 16 de março de 2008. Cópia arquivada em 22 de outubro de 2026
  210. ↑ «Instruction separation» (em inglês). The PHP Group. Consultado em 16 de março de 2008. Cópia arquivada em 11 de outubro de 2026
  211. ↑ «PHP: if – Manual». www.php.net (em inglês). Consultado em 8 de março de 2026. Cópia arquivada em 15 de outubro de 2026
  212. ↑ «PHP: for – Manual». www.php.net (em inglês). Consultado em 8 de março de 2026. Cópia arquivada em 17 de outubro de 2026
  213. ↑ «PHP: while – Manual». www.php.net (em inglês). Consultado em 8 de março de 2026
  214. ↑ «Integers in PHP, running with scissors, and portability» (em inglês). MySQL Performance Blog. 27 de março de 2007. Consultado em 28 de março de 2007. Cópia arquivada em 6 de julho de 2014
  215. 1 2 «Integers» (em inglês). PHP Manual. Consultado em 22 de outubro de 2026. Cópia arquivada em 14 de outubro de 2026
  216. 1 2 3 4 5 «Types» (em inglês). The PHP Group. Consultado em 16 de março de 2008. Cópia arquivada em 23 de outubro de 2026
  217. ↑ Backward Incompatible Changes. PHP Manual. Em inglês. Consultado em 22 de outubro de 2026.
  218. ↑ «SPL – StandardPHPLibrary». PHP.net (em inglês). 16 de março de 2009. Consultado em 16 de março de 2009. Cópia arquivada em 25 de agosto de 2026
  219. 1 2 «User-defined functions (PHP manual)». php.net (em inglês). 4 de julho de 2014. Consultado em 7 de julho de 2014. Cópia arquivada em 15 de outubro de 2026
  220. 1 2 3 «Variable functions (PHP manual)». php.net (em inglês). 4 de julho de 2014. Consultado em 7 de julho de 2014. Cópia arquivada em 14 de outubro de 2026
  221. ↑ «create_function() (PHP manual)». php.net (em inglês). 6 de abril de 2022. Consultado em 4 de maio de 2022. Cópia arquivada em 13 de setembro de 2026
  222. ↑ «Anonymous functions (PHP manual)». php.net (em inglês). 4 de julho de 2014. Consultado em 7 de julho de 2014. Cópia arquivada em 15 de outubro de 2026
  223. 1 2 «Arrow Functions (PHP manual)». php.net (em inglês). PHP Manual. Consultado em 25 de janeiro de 2021. Cópia arquivada em 15 de outubro de 2026
  224. ↑ Christian Seiler; Dmitry Stogov (1 de julho de 2008). «Request for Comments: Lambda functions and closures». php.net (em inglês). Consultado em 7 de julho de 2014. Cópia arquivada em 11 de julho de 2026
  225. ↑ «Type declarations: Strict typing» (em inglês). PHP Manual. Consultado em 22 de outubro de 2026. Cópia arquivada em 6 de outubro de 2026
  226. ↑ «IntlDateFormatter::format». The PHP Group. Consultado em 22 de outubro de 2026. Cópia arquivada em 13 de maio de 2026
  227. 1 2 «PHP 5 Object References». mjtsai.com (em inglês). Consultado em 16 de março de 2008. Cópia arquivada em 14 de abril de 2026
  228. ↑ «Backward Incompatible Changes». php-legacy-docs.zend.com (em inglês). Consultado em 22 de outubro de 2026. Cópia arquivada em 11 de dezembro de 2025
  229. ↑ «Classes and Objects (PHP 5)» (em inglês). The PHP Group. Consultado em 16 de março de 2008. Cópia arquivada em 10 de setembro de 2026
  230. ↑ Late Static Bindings. PHP Manual. Em inglês. Consultado em 22 de outubro de 2026.
  231. ↑ «Object cloning» (em inglês). The PHP Group. Consultado em 16 de março de 2008
  232. ↑ «Object Cloning» (em inglês). PHP Manual. Consultado em 22 de outubro de 2026. Cópia arquivada em 18 de setembro de 2026
  233. ↑ «Visibility (PHP Manual)». theserverpages.com (em inglês). 19 de maio de 2005. Consultado em 26 de agosto de 2010. Arquivado do original em 24 de setembro de 2010
  234. ↑ «PHP: Visibility – Manual». www.php.net (em inglês). Consultado em 19 de novembro de 2025. Cópia arquivada em 15 de outubro de 2026
  235. ↑ «How do computer languages work?» (em inglês). Consultado em 4 de novembro de 2009. Arquivado do original em 16 de julho de 2011
  236. ↑ Gilmore, W. Jason (23 de janeiro de 2006). Beginning PHP and MySQL 5: From Novice to Professional (em inglês). [S.l.]: Apress. p. 43. ISBN 1-59059-552-1
  237. ↑ PHP Language Specifications. The PHP Group. Em inglês. Consultado em 22 de outubro de 2026.
  238. ↑ Julien Pauli, Nikita Popov e Anthony Ferrara. The PHP lifecycle. PHP Internals Book. Em inglês. Consultado em 22 de outubro de 2026.
  239. ↑ OPcache. PHP Manual. Em inglês. Consultado em 22 de outubro de 2026.
  240. ↑ «[VOTE] Integrating Zend Optimizer+ into the PHP distribution». news.php.net (em inglês). Consultado em 8 de março de 2013. Cópia arquivada em 2 de fevereiro de 2026
  241. ↑ «Alternative PHP Cache». PHP.net (em inglês). Consultado em 22 de outubro de 2026. Arquivado do original em 15 de novembro de 2013
  242. 1 2 Max Wang (18 de setembro de 2017). «The Future of HHVM» (em inglês). HHVM. Consultado em 22 de outubro de 2026. Cópia arquivada em 6 de setembro de 2026
  243. ↑ «We are the 98.5% (and the 16%) « HipHop Virtual Machine». hhvm.com (em inglês). Dezembro de 2013. Consultado em 23 de fevereiro de 2014. Cópia arquivada em 4 de setembro de 2026
  244. ↑ Mark Gavalda. The Definitive PHP 5.6, 7.0, 7.1, 7.2 & 7.3 Benchmarks (2019). Kinsta. 14 de janeiro de 2019. Em inglês. Versão arquivada em 19 de abril de 2019. Consultado em 22 de outubro de 2026.
  245. ↑ Krill, Paul (20 de setembro de 2017). «Forget PHP! Facebook's HHVM engine switches to Hack instead». InfoWorld (em inglês). Consultado em 6 de fevereiro de 2019
  246. ↑ Fred Emmott. HHVM 4.0.0. HHVM. 11 de fevereiro de 2019. Em inglês. Consultado em 22 de outubro de 2026.
  247. ↑ HipHop for PHP: Move Fast. Facebook Engineering. 2 de fevereiro de 2010. Em inglês. Consultado em 22 de outubro de 2026.
  248. ↑ «Announcement on GitHub removing HPHPc support». GitHub (em inglês). Consultado em 24 de maio de 2013
  249. ↑ Bernhard Schmalhofer. Design and Implementation of Pipp. Documentação do projeto Pipp. Em inglês. Consultado em 22 de outubro de 2026.
  250. ↑ About. PeachPie Documentation.
    What you can build with PeachPie. PeachPie. 14 de maio de 2023. Em inglês. Consultado em 22 de outubro de 2026.
  251. ↑ Phalanger: the PHP language compiler for .NET Framework. DEVSENSE.
    Advanced Optimizations in Dynamic Language Compiler. Universidade Carolina. Em inglês. Consultado em 22 de outubro de 2026.
  252. ↑ Quercus: PHP in Java. Caucho. Em inglês. Consultado em 22 de outubro de 2026.
  253. ↑ Vjeux. Our First 50,000 Stars. React Blog. 28 de setembro de 2016. Em inglês. Consultado em 22 de outubro de 2026.
  254. ↑ «The PHP License, version 3.01» (em inglês). Consultado em 20 de maio de 2010. Cópia arquivada em 16 de outubro de 2026
  255. ↑ «GPL-Incompatible, Free Software Licenses». Various Licenses and Comments about Them (em inglês). Free Software Foundation. Consultado em 3 de janeiro de 2011. Cópia arquivada em 17 de outubro de 2026
  256. ↑ «PHP: Function and Method listing, Manual» (em inglês). The PHP Group. Consultado em 14 de janeiro de 2015. Cópia arquivada em 28 de setembro de 2026
  257. ↑ «Cross Reference: /PHP_5_4/ext/standard/». php.net (em inglês). Consultado em 16 de dezembro de 2014. Arquivado do original em 16 de março de 2012
  258. ↑ «Developing Custom PHP Extensions». devnewz.com (em inglês). 9 de setembro de 2002. Consultado em 25 de fevereiro de 2008. Cópia arquivada em 18 de fevereiro de 2008
  259. ↑ «Introduction: What can PHP do?». PHP Manual (em inglês). Consultado em 5 de março de 2009. Arquivado do original em 16 de fevereiro de 2009
  260. ↑ «Helicopter: Port of node-ar-drone which allows user to control a Parrot AR Drone over PHP» (em inglês). JoliCode. 11 de janeiro de 2019. Consultado em 23 de fevereiro de 2019. Cópia arquivada em 16 de abril de 2026
  261. ↑ «Why Zephir?». zephir-lang.com (em inglês). 20 de outubro de 2015. Consultado em 14 de dezembro de 2015. Cópia arquivada em 3 de março de 2026
  262. ↑ «PHP Credits» (em inglês). Consultado em 16 de dezembro de 2018. Cópia arquivada em 4 de setembro de 2026
  263. ↑ «Learn PHP Via PHP Training and PHP Certification». www.zend.com (em inglês). Consultado em 16 de novembro de 2020. Cópia arquivada em 19 de setembro de 2026
  264. ↑ «PHP Certification Exam» (em inglês). Zend. Consultado em 22 de outubro de 2026. Cópia arquivada em 27 de setembro de 2026
  265. ↑ Walker, James (13 de dezembro de 2021). «What the New PHP Foundation Means for PHP's Future». How-To Geek (em inglês). Consultado em 26 de novembro de 2023. Cópia arquivada em 14 de janeiro de 2026
  266. ↑ «The New Life of PHP – The PHP Foundation | The PhpStorm Blog». The JetBrains Blog (em inglês). JetBrains. 22 de novembro de 2021. Consultado em 16 de junho de 2022. Cópia arquivada em 9 de julho de 2026
  267. ↑ «The PHP Foundation: Impact and Transparency Report 2022». thephp.foundation (em inglês). Consultado em 27 de novembro de 2023. Cópia arquivada em 16 de julho de 2026
  268. ↑ Pronskiy, Roman (26 de fevereiro de 2024). «The PHP Foundation: Impact and Transparency Report 2023». The PHP Foundation (em inglês). Consultado em 1 de abril de 2024. Cópia arquivada em 27 de abril de 2026
  269. ↑ Anderson, Tim. «PHP Foundation formed to fund core developers». www.theregister.com (em inglês). Consultado em 5 de dezembro de 2023. Cópia arquivada em 10 de março de 2026
  270. ↑ «PHP». Sovereign Tech Fund (em inglês). Consultado em 26 de maio de 2024. Cópia arquivada em 3 de novembro de 2024
  271. ↑ Taylor, Josh (22 de outubro de 2026). «What is PHP, and how bad is the computer language flaw causing website shutdowns globally?». The Guardian (em inglês). Consultado em 22 de outubro de 2026
  272. ↑ Microsoft IIS. PHP Manual. Em inglês. Consultado em 22 de outubro de 2026.
    FrankenPHP. Em inglês. Consultado em 22 de outubro de 2026.
  273. ↑ Removed Extensions and SAPIs. PHP Manual. Em inglês. Consultado em 22 de outubro de 2026.
  274. 1 2 3 4 «General Installation Considerations». php.net (em inglês). Consultado em 22 de setembro de 2013. Cópia arquivada em 3 de outubro de 2026
  275. ↑ «News Archive: PHP 5.3.3 Released!». php.net (em inglês). 22 de julho de 2010. Cópia arquivada em 22 de outubro de 2026
  276. ↑ «FastCGI Process Manager (FPM)». php.net (em inglês). Consultado em 22 de setembro de 2013. Cópia arquivada em 3 de outubro de 2026
  277. 1 2 «Command line usage: Introduction». php.net (em inglês). Consultado em 22 de setembro de 2013. Arquivado do original em 21 de março de 2021
  278. ↑ «Command line usage: Differences to other SAPIs». php.net (em inglês). Consultado em 22 de setembro de 2013. Cópia arquivada em 13 de outubro de 2026
  279. ↑ «PHP: Apache 2.x on Microsoft Windows». php.net (em inglês). Consultado em 22 de setembro de 2013. Arquivado do original em 26 de setembro de 2013
  280. ↑ «PHP Desktop» (em inglês). GitHub. Cópia arquivada em 7 de maio de 2026
  281. ↑ «Installing PHP-GTK 2». php.net (em inglês). Consultado em 22 de setembro de 2013. Arquivado do original em 12 de dezembro de 2013
  282. ↑ Vinit Sharma. «What is Cloud Computing? | How to Integrate PHP with AWS» (em inglês). Clarion Technologies. Consultado em 6 de dezembro de 2025. Cópia arquivada em 16 de maio de 2026
  283. ↑ «AWS SDK for PHP». aws.amazon.com (em inglês). Consultado em 6 de março de 2014. Cópia arquivada em 28 de julho de 2014
  284. ↑ «Windows Azure SDK for PHP , Interoperability Bridges and Labs Center». interoperabilitybridges.com (em inglês). Consultado em 6 de março de 2014. Arquivado do original em 20 de março de 2014
  285. ↑ Microsoft Azure SDK for PHP. Microsoft. Em inglês. Consultado em 22 de outubro de 2026.
  286. ↑ «Runtime configuration: Table of contents». php.net (em inglês). Consultado em 22 de setembro de 2013. Cópia arquivada em 11 de outubro de 2026
  287. ↑ «php.ini directives: List of php.ini directives». php.net (em inglês). Consultado em 22 de setembro de 2013. Cópia arquivada em 15 de outubro de 2026
  288. ↑ «Runtime configuration: The configuration file» (em inglês). PHP.net. Consultado em 22 de setembro de 2013. Cópia arquivada em 22 de outubro de 2026
  289. ↑ «php.ini directives: List of php.ini sections» (em inglês). PHP.net. Consultado em 22 de setembro de 2013. Cópia arquivada em 5 de outubro de 2026
  290. ↑ «Runtime configuration: Where a configuration setting may be set» (em inglês). PHP.net. Consultado em 22 de setembro de 2013. Cópia arquivada em 6 de outubro de 2026
  291. ↑ «PHP Manual Image Processing and GD;» (em inglês). php.net. Consultado em 9 de abril de 2011. Cópia arquivada em 17 de outubro de 2026
  292. ↑ «Embedding PHP in HTML» (em inglês). O'Reilly. 3 de maio de 2001. Consultado em 25 de fevereiro de 2008. Arquivado do original em 19 de fevereiro de 2008
  293. ↑ PHP on IBM i. IBM. 5 de dezembro de 2025. Em inglês. Consultado em 22 de outubro de 2026.
  294. ↑ PHP. VMS Software. Em inglês. Consultado em 22 de outubro de 2026.
  295. ↑ Elizabeth K. Joseph. Linux on IBM Z and LinuxONE Open Source Software Report: July 2026. IBM Community. 1 de setembro de 2026. Em inglês. Consultado em 22 de outubro de 2026.
  296. ↑ «PHP Server-Side Scripting Language» (em inglês). Universidade de Indiana. 4 de abril de 2007. Consultado em 25 de fevereiro de 2008. Cópia arquivada em 21 de janeiro de 2016
  297. ↑ «JavaServer Pages Technology , JavaServer Pages Comparing Methods for Server-Side Dynamic Content White Paper» (em inglês). Sun Microsystems. Consultado em 25 de fevereiro de 2008. Cópia arquivada em 4 de agosto de 2012
  298. ↑ «Installation» (em inglês). Laravel. Consultado em 22 de outubro de 2026. Cópia arquivada em 10 de agosto de 2026
  299. ↑ «Five simple ways to tune your LAMP application». IBM (em inglês). 25 de janeiro de 2011. Cópia arquivada em 28 de fevereiro de 2021
  300. ↑ «MAMP: The free web development solution with Apache, Nginx, PHP & MySQL» (em inglês). MAMP. Consultado em 22 de outubro de 2026. Cópia arquivada em 10 de setembro de 2026
  301. ↑ «Installation on macOS» (em inglês). PHP. Consultado em 22 de outubro de 2026. Cópia arquivada em 12 de outubro de 2026
  302. ↑ PHP at the core: Extension structure. PHP.net. Em inglês. Arquivado do original em 26 de setembro de 2013. Consultado em 22 de outubro de 2026.
    PHP at the core: The "counter" Extension – A Continuing Example. PHP.net. Em inglês. Arquivado do original em 26 de setembro de 2013. Consultado em 22 de outubro de 2026.
    Extension Writing Part I: Introduction to PHP and Zend. Zend Technologies. 1 de março de 2005. Em inglês. Arquivado do original em 24 de setembro de 2013. Consultado em 22 de setembro de 2013.
    Extension Writing Part II: Parameters, Arrays, and ZVALs. Zend Technologies. 6 de junho de 2005. Em inglês. Arquivado do original em 26 de setembro de 2013. Consultado em 22 de setembro de 2013.
    Extension Writing Part II: Parameters, Arrays, and ZVALs (continued). Zend Technologies. 6 de junho de 2005. Em inglês. Arquivado do original em 26 de setembro de 2013. Consultado em 22 de setembro de 2013.
    Extension Writing Part III: Resources. Zend Technologies. 12 de maio de 2006. Em inglês. Arquivado do original em 26 de setembro de 2013. Consultado em 22 de setembro de 2013.
    Wrapping C++ Classes in a PHP Extension. Zend Technologies. 22 de abril de 2009. Em inglês. Arquivado do original em 20 de setembro de 2013. Consultado em 22 de setembro de 2013.
  303. ↑ «Extending PHP with C++?» (em inglês). Stack Overflow. Consultado em 22 de setembro de 2013
  304. ↑ «How can I use C++ code to interact with PHP?» (em inglês). Stack Overflow. Consultado em 22 de setembro de 2013
  305. ↑ Golemon, Sara (2006). Extending and Embedding PHP (em inglês). [S.l.]: Sams. ISBN 978-0-672-32704-9
  306. ↑ «Request #46919: Multithreading». PHP.net (em inglês). Consultado em 22 de setembro de 2013. Cópia arquivada em 18 de abril de 2026
  307. ↑ Joe Watkins. Threading for PHP - Share Nothing, Do Everything :). GitHub. Em inglês. Consultado em 22 de outubro de 2026.
  308. 1 2 «PECL :: Package :: pthreads». pecl.php.net (em inglês). PECL. Consultado em 9 de fevereiro de 2014. Cópia arquivada em 29 de agosto de 2026
  309. ↑ «PECL: Package: PHPScript» (em inglês). PECL. Consultado em 22 de outubro de 2026. Cópia arquivada em 12 de abril de 2026
  310. ↑ Manual:Installation requirements#PHP. MediaWiki. 25 de janeiro de 2010. Em inglês. Consultado em 26 de fevereiro de 2010. "PHP é a linguagem de programação em que o MediaWiki é escrito [...]"
  311. ↑ About WordPress. Em inglês. Consultado em 26 de fevereiro de 2010. "O WordPress foi [...] construído em PHP."
  312. ↑ Alex Kempkens. Joomla! , Content Management System to build websites & apps. Em inglês.
  313. ↑ PHP and Drupal. Drupal.org. 16 de setembro de 2007. Em inglês. Arquivado do original em 8 de fevereiro de 2010. Consultado em 13 de junho de 2010.
  314. ↑ About. Moodle.org. Em inglês. Arquivado do original em 11 de janeiro de 2010. Consultado em 20 de dezembro de 2009.
  315. ↑ Server requirements of SilverStripe. Em inglês. Arquivado do original em 28 de novembro de 2014. Consultado em 13 de outubro de 2014. "O SilverStripe exige PHP 5.3.2 ou posterior."
  316. ↑ Ide, Andy. PHP just grows & grows. 31 de janeiro de 2013. Em inglês. Consultado em 1 de abril de 2013.
  317. 1 2 Usage Statistics and Market Share of PHP Version 4 for Websites. W3Techs. Dados de 22 de outubro de 2026. Em inglês. Consultado em 22 de outubro de 2026.
  318. ↑ Usage Statistics and Market Share of PHP Version 5 for Websites. W3Techs. Dados de 22 de outubro de 2026. Em inglês. Consultado em 22 de outubro de 2026.
  319. 1 2 Usage Statistics and Market Share of PHP Version 7 for Websites. W3Techs. Dados de 22 de outubro de 2026. Em inglês. Consultado em 22 de outubro de 2026.
  320. ↑ Usage Statistics and Market Share of PHP Version 8 for Websites. W3Techs. Dados de 22 de outubro de 2026. Em inglês. Consultado em 22 de outubro de 2026.
  321. ↑ Fabien Coelho. PHP-related vulnerabilities on the National Vulnerability Database. Dados gerados em 1 de janeiro de 2013. Em inglês. Versão arquivada em 23 de janeiro de 2013. Consultado em 22 de outubro de 2026.
  322. ↑ Developer Meeting Notes, Nov. 2005. Em inglês.
  323. ↑ Taint mode decision, November 2007. Em inglês. Arquivado do original em 26 de fevereiro de 2009.
  324. ↑ PHP: rfc:taint. wiki.php.net. Em inglês.
  325. ↑ Hardened-PHP Project. 15 de agosto de 2008. Em inglês. Arquivado do original em 24 de fevereiro de 2019. Consultado em 22 de agosto de 2019.
  326. ↑ Snuffleupagus Documentation. Em inglês.
  327. ↑ Security: Using Register Globals. PHP Manual. PHP.net. Em inglês. Arquivado do original em 27 de setembro de 2013. Consultado em 22 de outubro de 2026.
  328. ↑ Magic Quotes. PHP Manual. PHP.net. Em inglês. Arquivado do original em 8 de fevereiro de 2014. Consultado em 22 de outubro de 2026.
  329. ↑ PHP Security Exploit With GIF Images. 22 de junho de 2007. Em inglês. Arquivado do original em 27 de setembro de 2013. Consultado em 22 de setembro de 2013.
  330. ↑ PHP security exploit with GIF images. PHP Classes blog. 20 de junho de 2007. Em inglês. Consultado em 22 de setembro de 2013.
  331. ↑ Passing Malicious PHP Through getimagesize(). 4 de junho de 2007. Em inglês. Arquivado do original em 21 de setembro de 2013. Consultado em 22 de setembro de 2013.
  332. ↑ 'engine' configuration directive. PHP: Runtime Configuration. PHP.net. Em inglês. Consultado em 13 de fevereiro de 2014.
  333. ↑ File Upload Cheat Sheet. OWASP. Em inglês. Consultado em 22 de outubro de 2026.
  334. ↑ 'enable_dl' configuration directive. PHP: Runtime Configuration. PHP.net. Em inglês. Consultado em 13 de fevereiro de 2014.
  335. ↑ PHP function reference: dl(). PHP.net. Em inglês. Consultado em 22 de setembro de 2013.
  336. 1 2 Raz0r. Simple Machines Forum <= 2.0.3 Admin Password Reset. Raz0R.name – Web Application Security. 25 de janeiro de 2013. Em inglês.
  337. ↑ Nibble Security. TYPO3-SA-2010-020, TYPO3-SA-2010-022 EXPLAINED. Em inglês.
  338. ↑ TYPO3-SA-2010-020: Multiple vulnerabilities in TYPO3 Core. TYPO3. 6 de outubro de 2010. Em inglês. Consultado em 22 de outubro de 2026.
  339. ↑ Криптостойкость и небезопасное сравнение. ahack.ru. Em ru. Arquivado do original em 4 de julho de 2017.
  340. ↑ Comparison Operators. PHP. Em inglês. Consultado em 22 de outubro de 2026.
  341. ↑ hash_equals. PHP. Em inglês. Consultado em 22 de outubro de 2026.
  342. ↑ Pawel Krawczyk. Most common attacks on web applications. IPSec.pl. 2013. Em inglês. Arquivado do original em 15 de abril de 2015. Consultado em 15 de abril de 2015.
  343. ↑ Pawel Krawczyk. So what are the "most critical" application flaws? On new OWASP Top 10. IPSec.pl. 2013. Em inglês. Consultado em 15 de abril de 2015.
  344. ↑ Filesystem: Runtime Configuration. PHP Manual. Em inglês. Consultado em 22 de outubro de 2026.
  345. ↑ PHP: Rand – Manual. Em inglês.
  346. ↑ PHP: Mt_rand – Manual. Em inglês.
  347. ↑ PHP: Random_int – Manual. Em inglês.
  348. 1 2 George Argyros e Aggelos Kiayias. I Forgot Your Password: Randomness Attacks Against PHP Applications. USENIX. agosto de 2012. Em inglês. Consultado em 22 de outubro de 2026.
  349. ↑ George Argyros, Aggelos Kiayias. I Forgot Your Password: Randomness Attacks Against PHP Applications. usenix.org. USENIX. 10 de agosto de 2012. Em inglês. Consultado em 19 de abril de 2024.
  350. ↑ PHP Support for PHP 7.2 – 8.0 | PHP LTS | Zend by Perforce. Em inglês. Consultado em 23 de maio de 2024.
  351. ↑ Pagely PHP Long Term Support Page. Pagely. Em inglês. Consultado em 14 de setembro de 2024.
  352. ↑ PHP: News Archive - 20 Oct 2026. www.php.net. 20 de outubro de 2026. Em inglês. Consultado em 21 de outubro de 2026.
  353. ↑ Dan Goodin. PHP warns it plans to release 2 emergency patches imminently. Ars Technica. 21 de outubro de 2026. Em inglês. Arquivado do original em 21 de outubro de 2026. Consultado em 21 de outubro de 2026.

Bibliografia complementar

Leitura em inglês de uma versão do artigo de 23 de novembro de 2011

Ligações externas

O Commons possui uma categoria com imagens e outros ficheiros sobre PHP
O Wikilivros tem um livro chamado Curso de PHP