
Passou o site para o PHP 8 e aparecem mensagens novas. Quase todas vêm do mesmo sítio: o PHP 8 ficou menos tolerante com código descuidado. O que antes era um aviso discreto ou passava calado, agora é um aviso à vista ou um erro que pára a página. Em geral o código que as provoca é de um plugin, de um tema ou de uma biblioteca antiga, e a cura está em actualizá-lo. Esta é a lista das mensagens mais vistas, o que querem dizer e como lidar com elas. Os números das versões vêm da documentação pública do PHP.
As mensagens, uma a uma
| A mensagem | Desde | Quer dizer | O que fazer |
| Warning: Undefined array key "x" | 8.0 | O código lê uma posição de uma lista que não existe (no PHP 7 era “Undefined index”, um aviso mais discreto). | Quem programa verifica antes (isset ou ??). Um plugin: actualize-o. |
| Warning: Undefined variable $x | 8.0 | Usa-se uma variável que nunca foi definida. | O mesmo. É um descuido do código, quase nunca grave. |
| Uncaught TypeError: Unsupported operand types: string * int | 8.0 | Fez-se uma conta com um texto vazio ou não numérico. | Converter ou validar o valor antes da conta. Pára a página. |
| TypeError: count(): Argument #1 must be of type Countable|array, null given | 8.0 | Contou-se algo que não existe. | Garantir que é uma lista antes de contar. |
| Deprecated: Passing null to parameter #1 ($string) of type string is deprecated | 8.1 | Passou-se um valor nulo a uma função que pede texto. | Usar um texto vazio no seu lugar. Não pára a página. |
| Deprecated: Return type of ... should either be compatible with ... ReturnTypeWillChange | 8.1 | Uma classe antiga não declara o tipo que o PHP agora espera. | Actualizar a biblioteca. Não pára a página. |
| Deprecated: Creation of dynamic property Classe::$x is deprecated | 8.2 | O código cria uma propriedade num objecto sem a declarar na classe. | Declarar a propriedade na classe. Não pára a página. |
Passo a passo
|
|
|
|
|
| Esconder os avisos não os corrige. Calar as mensagens no ecrã é razoável num site público, mas o aviso é um sinal de que o código pode falhar noutros casos. Veja avisos do PHP no site: o que são e como os silenciar. Os “Deprecated” podem nem aparecer no registo, porque a configuração de origem não os regista. |
| Um PHP antigo é uma dívida. Voltar atrás resolve hoje, mas deixa o site numa versão que deixa de receber correcções de segurança. Use o tempo ganho para actualizar. Veja que versão do PHP deve usar. |
|
Uma mensagem de PHP 8 que não consegue ligar a um plugin ou a uma linha? Envie-nos a mensagem completa e o endereço da página. Abrir um pedido de suporte |
|
VEJA TAMBÉM Que versão do PHP deve usar no seu site Mudar a versão do PHP sem partir o site |
PRODUTO RECOMENDADO Alojamento de sites com cPanel Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 9.000,00 Kz/mês Ver planos |
- 0 Utilizadores acharam útil











