PHP. El lenguaje cada vez más de moda

Jul 6, 2017 | TIC-tek

PHP empezó en el año 1995 como un lenguaje multiplataforma, pero mucho ha cambiado desde aquel entonces hasta nuestros días. Creado por Rasmus Lerdorf, actualmente es un lenguaje de programación multiparadigma, imperativo, funcional, orientado a objetos, procedural y reflexivo.

Es seguro, robusto y fiable, lo que hace que cada vez tenga más y más aceptación en el mundo web, respecto a otros competidores como Java.

PHP 82.6%
Java 2.6%
W3Techs.com, 28 de abril 2017

Porcentajes de webs utilizando varios lenguajes de programación del lado del servidor.

 

PHP 7, la nueva versión

PHP ha estado constantemente en evolución, desde la primera versión, hasta esta última, que es la versión 7.

Los objetivos fijados para esta versión han sido básicamente dos:

  1. Eliminación de las funcionalidades obsoletas de las otras versiones, aunque se han mantenido en general para mejorar las migraciones de otras versiones anteriores a esta nueva.
  2. Mejoras generales en las consistencias del lenguaje, había muchas inconsistencias de otras versiones que han quedado obsoletas, con el fin de mejorar la integridad del mismo.

Aunque muchos cambios han sido hechos con la filosofía de que sean retrocompatibles con otras versiones (aunque obsoletas), hay algunos cambios que NO son compatibles con otras versiones, por lo que no llevaría a tener que hacer adaptaciones en nuestro código. Hablaremos de algunos más adelante.

Nuevas características de la versión 7

PHP 7 incorpora multitud de nuevas características, entre las más importante podemos destacar:

  • Declaraciones de tipo escalar, ya desde la versión 5 de PHP se podía poner declaración de tipos en los parámetros de entrada de las funciones, ahora se pueden poner los tipos escalares también (string, int, float y boolean).
  • Declaración de tipo de retorno, ahora además de poder ‘tipar’ los parámetros de entrada de las funciones, ahora podemos también declarar el tipo en el valor de retorno.
  • El operador ‘nave espacial’ (<==>) este comparador devolvería -1,0,-1 si al comparar dos expresiones fueran menor, igual o mayor respectivamente.
  • Arrays como constantes, ahora con define() podemos definir constantes.
  • Clases anónimas, ahora a partir de una interfaz definida podemos declarar una clase anónima como en otros lenguajes como Java.
  • Operador de fusión de null (??), devuelve su primer operando si existe y no es NULL; de lo contrario, devuelve su segundo operando. Suele utilizarse como abreviación del operador terciario con la función isset()
  • Previsiones, como mejora de la antigua función assert(), permitiendo realizar afirmaciones sin coste en código de producción.
  • Declaraciones de ‘use’ en grupo, permitiendo agrupar clases que usen el mismo namespace en una única sentencia de ‘use’.
  • División entera, mediante la función intdiv()
  • Sobrescritura de inicio de la sesión, ahora session_start() permite como argumento un array para sobrescribir las directivas establecidas en php.ini
  • Nuevas funciones, se han añadido multitud de nuevas funciones o mejorado el rendimiento de anteriores.

 

Cambios NO retrocompatibles

Siempre que una nueva versión aparece, hay ciertos cambios que hacen que ciertas partes de nuestro código no funcionen en la nueva versión, hay que prestar especial atención en lo siguiente:

  • Cambios en las excepciones, muchos errores fatales han sido convertidos a excecpiones en PHP 7, manteniendo la herencia y heredando de la clase Error de PHP. Por lo tanto, ahora podemos tratarlos en bloques try/catch de manera normal.
  • Cambios en el manejo de las variables, en la última versión de PHP se emplea un árbol sintáctico abstracto a la hora de analizar los ficheros PHP. Estos cambios han permitido enormes mejoras en el lenguaje, pero algunos casos especiales han desencadenado ciertas retroincopatibilidades, como por ejemplo que no se permitan variables de variables cuando declaramos un atributo de tipo ‘global’ o que los paréntesis alrededor de una función no afecten a su comportamiento.
  • Cambios en el ‘foreach’, la estructura para recorrer arrays ha variado levemente su comportamiento:
    • Ya no cambiara el puntero de arrays interno.
    • Ahora creara una copia el array a recorrer, en vez de utilizar el mismo array.
  • Cambios en los tipo integer, diversos cambios y mejoras, tales como:
    • Dividir un número seguirá el estándar IEEE 754, por ejemplo ahora el resultado será ‘INF’ (de infinito) o ‘-INF’ en vez de ‘false’.
    • Mejoras en desplazamientos de bits, antes dependía de la arquitectura mientras que ahora se ha unificado.
  • Cambios menores en los tipos String.
  • Funciones eliminadas, entre ellas:
    • Todas las funciones ereg*
    • Todas las funciones de ext/mysql, desde hace tiempo, si se quiere hacer consultas a MySQL se debe utilizar las apis MySqli o PDO.
    • Todas las funciones ext/mssql

Futuro igual de prometedor con PHP 7

PHP 7 se ha posicionado en el mercado de una manera muy poco intrusiva respecto a las versiones anteriores. Muchas mejoras de rendimiento y del lenguaje hacen que sea muy atractivo para las empresas. PHP seguirá reinando el mundo web y esta última versión es la prueba de ello.

Catálogo 2021

Conoce nuestra oferta formativa para este año

Últimas entradas