STRICT STANDARDS representa um nível de notificação de mensagens de erro do PHP que avisa o programador sobre mudanças a serem realizadas no código-fonte para garantir a melhor interoperabilidade futura. Na prática, habilitar o STRICT STANDARDS ajuda a evitar quebra de compatibilidade em seu código com futuras atualizações de versões do PHP, já que ele antecipa algumas possíveis mudanças futuras.

É recomendado deixar o STRICT STANDARDS habilitado no servidor de desenvolvimento para escrevermos um código melhor preparado para novas versões. Mensagens do tipo STRICT são inofensivas, ou seja, não interferem negativamente em seu código. Mas isso não quer dizer que uma mensagem que hoje é STRICT se transforme em uma WARNING ou FATAL ERROR em uma futura versão.

Uma das mensagens emitidas quando o STRICT está ligado (ver cláusula error_reporting do php.ini) é: "Strict Standards: Non-static method CLASS::METHOD() should not be called statically in file.php on line X". Essa mensagem é emitida quando realizamos uma chamada estática de um método que não está declarado de maneira estática. Para solucionar esse problema, basta adicionarmos um "static" na declaração do método.

  1. <?php
  2. class Teste
  3. {
  4.     // adicionar static na declaração
  5.     public /* static */ function testeStatic()
  6.     {
  7.         echo 'ok';
  8.     }
  9. }
  10. Teste::testeStatic();
  11. ?>


Comentários

Fernando Andrade: Adicionar static na declaração ou então
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
no php.ini
Pablo Dall'Oglio: Com certeza funciona. Entretanto, é uma boa prática se manter em dia com as notificações do PHP para evitar dores de cabeça em futuras atualizações de versão.
Poliana EAugusto Eisermann: Valeu a dica Pablo!!!
Claudio Sa: Bom dia, estou recebendo as mensagens abaixo:
Strict Standards: Non-static method ManipulacaoDatas::dataHoraAgoraUnix() should not be called statically, assuming $this from incompatible context in /var/www/html/artemis/modelo/ManipulacaoProcesso.class.php on line 39 Strict Standards: Only variables should be passed by reference in /var/www/html/artemis/bibliotecas/ezpdo/src/query/epQueryBuilder.php on line 1677 Strict Standards: Only variables should be assigned by reference in /var/www/html/artemis/bibliotecas/ezpdo/src/runtime/epObject.php on line 2740

Devo me preocupar ? alguma sugestão ?
 


Você precisa realizar login pelo Facebook para enviar posts, comentários, apagar posts ou baixar posts em PDF. Para isso, clique no botão "Login no facebook".



Receba os posts por email: (?)

Conheça o Adianti Framework para PHP:

  • Desenvolvimento com componentes;
  • Formulários e datagrids.
  • Versão Web e Desktop (Gtk);
  • Multiplataforma;
  • Desenhe as interfaces;
  • IDE própria (Adianti Studio).
Ver detalhes...

Tenha mais produtividade com:

Adianti Studio: IDE para PHP

  • Leve e rápido;
  • Syntax highlight;
  • Gerência de projetos;
  • Navegação em banco de dados;
  • Autocomplete e plugins.
Mais informações...