Erros de incompatibilidade com o PHP 7.0 após a conversão

Erros de incompatibilidade com o PHP 7.0 após a conversão

Os únicos erros que poderão ocorrer serão em decorrência de códigos utilizados nos eventos, bibliotecas e métodos que não sejam compatíveis com o PHP 7.0. Esses erros devem ser corrigidos manualmente.


1 - Short open tags

A diretiva short_open_tag informa ao PHP se a forma abreviada (<? ?>) da tag de abertura do PHP é permitida.

Independe da versão do php, precisa-se checar no php.ini se o short_open_tags está habilitado.

Solução 1:
Alterar a tag de abertura do php para (<?php ?>)
Solução 2:
Alterar a diretiva short_open_tags no php.ini:

short_open_tags = On


2 - Novos objetos não podem ser atribuídos por referência

O resultado da declaração new não pode mais ser atribuído a uma variável por referência:
<?php
class C {}
$c =& new C;
?>

O exemplo acima irá imprimir no PHP 5:
       Deprecated: Assigning the return value of new by reference is deprecated in /tmp/test.php on line 3

O exemplo acima irá imprimir no PHP 7:
       Parse error: syntax error, unexpected 'new' (T_NEW) in /tmp/test.php on line 3

Solução:
       Retirar referência (&) da atribuição:

<?php
class C {}
$c = new C;
?>


3 - Construtores ao estilo PHP 4

Construtores ao estilo PHP 4 (métodos que têm o mesmo nome que a classe onde estão definidos) estão depreciados, e será removido no futuro. O PHP 7 emitirá E_DEPRECATED se um construtor do PHP 4 for o único construtor definido na classe. Classes que implementam o método __construct() não são afetadas.

<?php
class foo {
    function foo() {
        echo 'Eu sou um construtor';
    }
}
?>

O exemplo acima irá imprimir:

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; foo has a deprecated constructor in example.php on line 3


4 - Chamadas estáticas a métodos não estáticos 

Chamadas estáticas a métodos que não foram declarados como static estão depreciados, e podem ser removidos no futuro.

<?php
class foo {
    function bar() {
        echo 'Eu não sou estático!';
    }
}

foo::bar();

?>

O exemplo acima irá imprimir:

Deprecated: Non-static method foo::bar() should not be called statically in - on line 8
I am not static!


Para mais informações:

Novos Recursos do PHP 7.0
 - Recursos depreciados no PHP 7.0


Fonte: http://php.net

    • Related Articles

    • Mapeamento das aplicações para conversão de projetos

      Neste artigo, veja como utilizar o arquivo sc_project_info para gerar o relatório geral dos projetos do Scriptcase. Nosso objetivo é auxiliar, de forma direta, os usuários do Scriptcase na migração dos seus projetos para a instalação com o PHP 8.1. O ...
    • Criando a chave de Api do Google Maps

      Neste artigo veja como habilitar e obter a chave para utilização do Google Maps nas aplicações do Scriptcase. Acessando a Plataforma do google Maps 1. Acesse o link https://mapsplatform.google.com/ para criar sua chave. Será necessário realizar login ...
    • Como conectar com o MySQL 8.0

      O MySQL 8 utiliza uma autenticação diferente ao de seus antecessores, que até o momento não é reconhecido pelo PHP 7, o que gera o erro "The server requested authentication method unknown to the client" ao tentar conectar-se ao Scriptcase.  ...
    • Atualizando o ambiente do seu Scriptcase 9 para o PHP 7.3

      A partir da release 9.4.016, o Scriptcase passa a ser compatível também com o PHP 7.3.  IMPORTANTE:  A atualização para o ambiente com PHP 7.3 não é obrigatória. O Scriptcase continuará sendo atualizado normalmente em ambientes com PHP 7.0. Portanto, ...
    • Instalando Scriptcase com PHP 7.0 no Windows

      Este artigo irá descrever a instalação do PHP 7.0 e Apache 2.4 para utilização do Scriptcase. Sistemas operacionais suportados: Windows Server 2008 SP2 2008 R2 SP1 2012 2012 SP2 2016 Windows 7 SP1 Vista SP2 8 8.1 10 Arquivos necessários: PHP 7.0: ...