Errores de incompatibilidad con PHP 7.0 luego de la conversión

Á

Álvaro Moura

Última actualización el Jul 6, 2026

Los únicos errores que pueden ocurrir serán debido a los códigos utilizados en los eventos, bibliotecas y métodos que no sean compatibles con PHP 7.0. Estos errores se deben corregir manualmente.

1 - Short open tags

La directiva short_open_tag informa a PHP si la forma abreviada ( ?) De la etiqueta de apertura de PHP está permitida.

Independiente de la versión del php, se debe chequear en php.ini si el short_open_tag está habilitado.

Solución 1:
Cambiar la etiqueta de apertura de php(php ?)
Solución 2:
Cambiar la directiva short_open_tags en php.ini:

short_open_tags = On

2 - Nuevos objetos no se pueden asignar por referencia

: El resultado de la declaración new ya no se puede asignar a una variable por referencia:

```
php<br style="box-sizing: border-box" /class C {}  
$c =& new C;  
?>
```

El ejemplo anterior se imprime para PHP 5:  
           Deprecated: Assigning the return value of new by reference is deprecated in /tmp/test.php on line 3

El ejemplo de arriba se imprime para PHP7:  
           Parse error: syntax error, unexpected 'new' (T\_NEW) in /tmp/test.php on line 3

Solución:  
          Retirar la referencia (&) de los atributos:

```
php<br style="box-sizing: border-box" /class C {}  
$c = new C;  
?>
```

3 -Constructores al estilo PHP 4

Los constructores al estilo PHP 4 (métodos que tienen el mismo nombre que la clase donde están definidos) están obsoletos, y serán eliminados en el futuro. El PHP 7 enviará `E_DEPRECATED` si un constructor de PHP 4 es el único constructor definido en la clase. Las clases que implementan el método \_\_construct () no se ven afectadas.

```
php<br style="box-sizing: border-box" /class foo {  
    function foo() {  
        echo 'Eu sou um construtor';  
    }  
}  
?>
```

El ejemplo de arriba se 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 -Llamadas estáticas a métodos no estáticos

Las llamadas estáticas a métodos que no se han declarado como static están obsoletas, y se pueden quitar en el futuro.

```
php<br style="box-sizing: border-box" /class foo {  
    function bar() {  
        echo 'Eu não sou estático!';  
    }  
}  
  
foo::bar();  
  
?>
```

El ejemplo de arriba se imprimirá:

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

Para más información:

- [Nuevos Recursos de PHP 7.0](http://php.net/manual/es/migration70.new-features.php)  
  - [Recursos obsoletas para PHP 7.0](http://php.net/manual/es/migration70.deprecated.php)

Fuente: [http://php.net](http://php.net/)