PHP 7
Con la llegada de HHVM y Phalcon (o mejor dicho, Zephir el lenguaje que compila a código C para PHP), los de Zend y la comunidad de PHP se pusieron las pilas, PHP estaba siendo superado de lejos en rendimiento. Pronto anunciaron PHP 7 como el resultado de muchos experimentos llevados a cabo en PHP-NG (PHP Next Generation).
Ya falta poco para que salga la versión estable de PHP 7 (por el momento son RC, release candidates). Además de mejor rendimiento y velocidad, esta release trae con ella muchas mejoras y añadidos. Listo algunos a continuación:
- Declaraciones de tipo escalar. Ahora podremos forzar a que los métodos/funciones reciban int, bool y float, además de los introducidos en la versión 5.6. Vamos, que podemos especificar casi cualquier tipo de parámetro.
- Declaraciones del tipo de devolución. ¡Podremos incluso declarar que tipo de dato devuelve una función! Tipos escalares, clases, etc. Pero no podremos especificar que una función puede devolver dos tipos distintos. Sí, eso de… “preg_match() devuelve 1 si pattern coincide con el subject dado, 0 si no, o FALSE si ocurrió un error.” http://php.net/manual/es/function.preg-match.php .
- Operador de fusión de null. Mejor le echáis un ojo vosotros mismos:
<?php // Obntener el valor de $_GET['usuario'] y devolver 'nadie' // si no existe. $nombre_usuario = $_GET['usuario'] ?? 'nadie'; // Esto equivale a: $nombre_usuario = isset($_GET['usuario']) ? $_GET['usuario'] : 'nadie';
// La fusión se puede encadenar: esto devolverá el primer // valor definido de $_GET['usuario'], $_POST['usuario'], // y 'nadie'. $nombre_usuario = $_GET['usuario'] ?? $_POST['usuario'] ?? 'nadie'; ?>
La verdad es que la idea está genial :D - El operador nave espacial o TIE fighter (que coincidencia, este año estrenan Star Wars VII). Se escribe “<=>” y sirve para comparar dos expresiones, “$a <=> $b” devuelve 1, 0 o -1 cuando $a es respectivamente menor, igual o mayor que $b.
- Clases anónimas. Para los que habéis tocado Java (por ejemplo) esto os sonará mucho, para los que no, imaginaos poder hacer un “new” de una interfaz y codificar la clase ad hoc.
Hay muchas cosas más, pero creo que estas son las más impactantes. Ahora mismo en el MPWAR de La Salle se está dando el módulo de PHP, es una pena que PHP 7 no haya salido antes, ya que los bugs que aún se están arreglando podrían interferir en el aprendizaje y por eso no lo usamos (usamos PHP 5.6, siempre al día). El siguiente curso, como es de costumbre, se dará el módulo de PHP con PHP 7.0 y todas sus nuevas características.