5 nuevas características en PHP 7

5 nuevas características en PHP 7

Biografía

Este estudio de caso es una publicación invitada escrita por Kaira Clark Works en Xicom Technologies Ltd, una empresa de desarrollo de aplicaciones web CakePHP. Ella siempre está feliz de compartir su pasión por el marketing y el desarrollo web. Si planea contratar un equipo dedicado para una brillante presencia en línea, ella es la indicada.

5 nuevas características en PHP 7

A fin de cuentas, 2015 ha sido un año esencial para todos los diseñadores de PHP, y después de once años, la adaptación de PHP a 5.0 lanzamiento, hay otro desarrollo que, a la larga, se avecina. Sin embargo, considere sobre diferentes aspectos destacados de desarrollo, piense en qué método afectaría su variante PHP su base de código PHP actual? Simplemente evalúe lo que realmente ha cambiado en PHP? ¿Qué tan segura puede lidiar con PHP Redesigns?? Aquí, en esta publicación, obtendrá todas las soluciones para sus consultas y al final experimentará lo que viene en su camino mientras trabaja con Php 7. Entonces, vengamos al corazón de la cuestión de examen ahora.

Mejoras de ejecución

Las actualizaciones de ejecución son probablemente una de las principales motivaciones entre los desarrolladores sobre por qué todos deberían tener un informe sobre cada servidor cuando se libera una llegada de PHP Stable Variant. La refactorización central presentada por el teléfono RFC hace que PHP 7 sea más rápido que HHVM. Los puntos de referencia oficiales son notables: la mayoría de las aplicaciones normales que se ejecutan en PHP 5.6 seguirá ejecutándose en cada evento dos veces más rápido en PHP 7.

COMPATIVOS DE COMPATIBILIDADES ANTERIORES

Ahora, tengamos una conversación sobre algunos factores de PHP esenciales que eventualmente podrían desglosar una aplicación heredada que se ejecuta en versiones de PHP más antiguas.

  • Sintaxis variable uniforme

Resuelve una serie de cada inconsistencia al momento de evaluar expresiones variables variables. Considere el siguiente código que se muestra:

 Class Company public $ emp_name = 'madhur; público $ emp_des = 'ingeniero de software';  $ Company = New Company (); $ Property = ['First' => 'Emp_name', 'Second' => 'Info']; Echo "Nombre de Nemployee es" . $ Company-> $ propiedad ['primero'] . "nn"; 

En PHP 7, la expresión $ Company-> $ propiedad ['primero'] se evalúa como $ Company-> $ Property ['First']]. El intérprete evaluará $ Company-> $ propiedad primero.

Gracias a nuestra nueva sintaxis variable de izquierda a derecha uniforme que hace que cada expresión sea válida, lo que no fue posible en la versión PHP temprana. Considere la siguiente clase para una mejor comprensión:

 Class Company public static $ ubicación = 'ncr'; función pública getBranches () return ['jaipur' => function () return "este y oeste;, 'chandigarh' => function () return 'norte y sur';]; función pública getBranchesOf ($ alguien) return $ this-> getBranches () [$ alguien]; función estática pública getNewCompany () return new Company (); 

PHP 7 permite crear asociaciones anidadas con diferentes combinaciones entre operadores:

$ Company = New Company (); Echo "N" . $ Company-> GetBranches () ['Jaipur'] () . "nn"; Echo "N" . $ Company-> GetBranchesOF ('Chandigarh') () . "nn"; 

Este fragmento de código generaría un error de análisis en PHP 5, pero va bien con PHP 7.

Trabajar con un error fatal con múltiples cláusulas "predeterminadas"

Este es, nuevamente un caso controvertido que se relaciona con errores más lógicos. No utiliza múltiples cláusulas predeterminadas en un interruptor solo porque nunca ocurrió ninguna advertencia de error. En PHP 7 encontrarás un error fatal: "Las declaraciones de conmutación solo contienen una cláusula predeterminada".

Excepciones del motor en PHP

Las excepciones del motor funcionan como un procedimiento de manejo de errores en la aplicación. Por lo tanto, todos sus errores fatales fatales y recuperables existentes se reemplazan de manera eficiente por excepciones, para detectar fácilmente todos dichos errores y tomar medidas para manejar dichos errores.

Consulte el siguiente código sobre cómo manejar la implementación de las excepciones del motor para mantener la compatibilidad con respecto al retroceso fácil:

 set_error_handler (function ($ código, $ mensaje) echo "error $ código:" . $ mensaje . "nn"; ); función a (arrayObject $ b) return $ b;  una prueba"); echo "Hola mundo"; 

Este código recupera efectivamente el error causado por el tipo de falta de coincidencia cuando llama a la función a () con la ayuda de la cadena como parámetro.

Hola Mundo

Esta ejecución continuará porque un error se manejó de manera eficiente. En PHP 7, generará una excepción de TipoError que no es un error. Entonces, en este caso, no se llamará a un controlador de errores personalizado, y esta es la siguiente salida que encontrará:


Error fatal: no capturado TipoError: Argumento 1 Pasado a A () debe ser una instancia de ArrayObject, cadena dada, llamada In/Vagrant/Tests/Test04.PHP en la línea 12 y definido en/vagabundo/tests/test04.PHP: 7
Trace de pila:
#0/Vagrant/Tests/Test04.PHP (12): A ('Test')
#1 main
arrojado/Vagrant/Tests/Test04.PHP en la línea 7

Aquí una ejecución se detendrá ya que la excepción no es atrapada. Para superar este problema, uno debería encontrar las excepciones haciendo uso de bloques de try/captación. Observe que la jerarquía de excepciones cambiará para acomodar en las nuevas excepciones del motor con un código heredado mínimo. Consulte el siguiente patrón a continuación:

  • Interfaz lanzable
    • Excepción implementa lanzarse
      • ErrorException extiende la excepción
      • RuntimeException extiende la excepción
    • Error implementa lanzarse
      • TypeError extiende el error
      • ParseError extiende el error
      • AssertionError extiende el error

El patrón anterior significa que una nueva excepción de Catch-All ahora es una excepción lanzable en lugar de.

Características del idioma recién agregados

Veamos lo que incluye?
Nuevos operadores

1. -> Spaceship/ Operator de comparación
El operador de la nave espacial se denota como, también conocido por un operador de comparación combinado de nombre que se utiliza para habilitar una comparación encadenada.

Tiene una expresión siguiente:
$ A $ B

1. La expresión evalúa a -1 si $ A es menor que $ B
2. 0 si $ A es igual a $ B
3. 1 si $ a es mayor que $ b.

En general, se puede usar como la siguiente expresión:

($ A $ B) ? 1: 0)

2 -> El operador nulo de Coalesce se denota como ?? que mantiene una verificación de si un valor está configurado para usarlo.

Sugerencias de tipo escalar

Los sugerencias de tipo escalar se producen como uno de los atributos más conocidos que se incluyen en el lenguaje PHP que hace uso de enteros, flotadores, cuerdas y símbolos booleanos como tipos de sugerencias para trabajar con funciones y métodos. Las sugerencias de tipo escalar no son restrictivas de forma predeterminada que significa que cuando pasa un valor flotante a un entero, el parámetro, solo lo suprimirá para encender el formato sin ninguna advertencia de error.

Entonces, para superar este problema, es esencial habilitar un modo estricto que arroje errores cuando cualquier tipo escalar ilegal se pase como argumento. Consulte el código generado a continuación:

 function double (int $ value) return 2 * $ value;  $ a = doble ("5"); var_dump ($ a); 

Para asegurarse de que los enteros se permitan pasar a la doble función, habilite un modo estricto al incluir los patrones de declarar (strict_types = 1) como una primera línea en su script:

 declarar (strict_types = 1); function double (int $ value) return 2 * $ value;  $ a = doble ("5"); var_dump ($ a); 

Este código generará un Error fatal: no capturado typeError: argumento 1 pasado al doble () debe ser del tipo entero, cadena dada.

Sugerencias de tipo de retorno

Otra nueva característica significativa que se agrega a PHP 7 es su capacidad extrema para habilitar el tipo de retorno de métodos y funciones; que se comporta como un tipo escalar sugiere. Cuidado con el código generado por debajo:

 función a (): bool return 1;  var_dump (a ()); 

Este fragmento de código se ejecuta de manera eficiente sin advertencias, y el valor devuelto se convierte en formato bool automáticamente. Al activar el modo estricto, se genera un error fatal:

Error fatal: typeError no capturado: el valor de retorno de a () debe ser del tipo booleano, entero devuelto devuelto

Estos errores son un tipo de excepciones que se capturan y se manejan mediante el uso de bloques de try/captación.

Conclusión

Espero que disfrutes trabajando con toda la nueva versión de PHP 7. Leer más