El día 3 de diciembre se dio a conocer el lanzamiento oficial de PHP 7, desde hace algún tiempo se esperaba esta noticia ya que hubo muchos rumores entre los cuales se destacaba un aumento substancial en cuanto a la velocidad.
Veamos algunas de las novedades que trae consigo PHP 7.
Scalar type Declarations
PHP nos permite validar el tipo de valor que recibimos en una función como por ejemplo un array, un objeto, etc. ahora en la versión 7 también podemos definir datos de tipo escalar.
Un escalar es una constante o variable que contiene un dato atómico y unidimensional. En contraposición al concepto de escalar, están los conceptos de array (vector), lista y objeto, que pueden tener almacenado en su estructura más de un valor.
Si usamos una función que recibe estrictamente un array como parámetro podemos escribir:
function arrayTest(array $array) { return $array; }
Ahora en PHP 7 podemos definir valores escalares como int, bool, etc.
function intTest(int $val) { return $val; }
Retornar un tipo específico de dato en una función
Así como podemos escribir los tipos de datos que recibe una función, ahora podremos ademas definir que tipo de dato debería devolver dicha función por medio de la declaración.
function someTest(array $array) { return $array; }
Esta función devolvería un array, simple. Ahora vamos a forzar a que sea estrictamente ese tipo de dato y lo hacemos de esta manera:
function someTest(array $array) : array { return true; }
En este caso la función va a fallar porque estamos tratando de retornar un valor booleano
true
en lugar de un array. Con lo que ayudaría a brindar un poco más de protección de nuestro código.
Null Collapsable Operator
Muy útil al momento de definir valores por defecto si una variable no está definida, por ejemplo
$username = $val ?? 'foo';
En este caso devolvería 'foo'
porque no se ha definido el valor $val. Sería equivalente a lo que podemos hacer actualmente con:
$username = isset($val) ? $val : 'foo';
Spaceship operator
Permite realizar comparaciones del tipo “menor que”, “mayor que” o “igual que” de forma simultanea.
// Integers echo 1 <=> 1; // devuelve 0 echo 1 <=> 2; // devuelve -1 echo 2 <=> 1; // devuelve 1
Arrays constantes
Nos permite definir un array de una forma un poco más directa, por llamarlo de algún modo.
define(‘test’, [1,2,3,4]); test[0] = 1;
Declaraciones agrupadas
Cuando declaramos clases dentro de otras, por ejemplo usamos:
use App\User; use App\Validator;
Ahora PHP 7 nos permite agrupar estas declaraciones de la siguiente forma:
use App\{User, Validator};
Y por supuesto sigue siendo permitido el uso de alias como:
use App\{User, Validator as Validate};
División de enteros
Cuando queremos dividir dos números y obtener como resultado un valor entero sin decimales podemos usar
intdiv(15, 4); // devuelve 3
Estas son tan solo algunas de las nuevas funcionalidades que trae esta actualización, pronto traeremos más tutoriales donde explicaremos poco a poco cada una de las mejoras, pero si estás un poco impaciente por saber más puedes visitar la documentación oficial.
Esperamos una nueva actualización de Homestead que incluya la actualización de PHP 7, por ahora Taylor Otwell ha anunciado la actualización del box de prueba homestead-7″
I’ll just update the homestead-7 box with the final release for now…
— Taylor Otwell (@taylorotwell) December 4, 2015
No olvides compartir esta gran noticia en las redes sociales y comentarnos que te parece.
Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.