PHP 5.6 Novedades

Ha pasado mucho tiempo, pero finalmente tenemos una nueva versión de PHP. Ofrece algunas nuevas y agradables funciones y mejoras, mientras que otras funciones se han eliminado o marcado como obsoleta..

Sumergámonos y echemos un vistazo a todo lo que ofrece la última versión..

Cambios incompatibles hacia atrás

En esta parte, voy a listar los cambios incompatibles hacia atrás; sin embargo, la mayoría de su código PHP5 funcionará en PHP 5.6 sin ninguna modificación.

json_decode

Según la especificación JSON, json_decode () eliminará inmediatamente todas las variantes que no sean en minúsculas de los literales JSON como verdadero, falso y nulo. También se establecerá json_last_error () en consecuencia.

Recursos GMP

Si no está seguro de qué es GNU Multiple Precision (GMP) en PHP, le recomiendo que consulte este artículo en PHP.net. En PHP 5.6, los recursos GMP son objetos. No necesita realizar ningún cambio en su código existente a menos que esté verificando un recurso explícitamente usando is_resource ().

Mcrypt

Todas las funciones de Mcrypt que esperan claves e IV no aceptarán claves o IV con tamaño incorrecto. Estas funciones incluyen mcrypt_encrypt (), mcrypt_decrypt (), mcrypt_cbc (), mcrypt_cfb (), mcrypt_ecb (), mcrypt_generic (), y mcrypt_ofb ().

Valores de matriz y sobrescritura

Antes de PHP 5.6, cuando declaraba una matriz en la propiedad de clase con claves explícitas e implícitas, el valor de la matriz se sobrescribía en silencio cuando la clave explícita era la misma que una clave implícita secuencial.

clase helloWorld const ONE = 1; public $ array = [self :: ONE => 'Eclipse', 'Sublime', 'PHPStorm',];  $ hello = new helloWorld (); print_r ($ hola); // Antes de PHP 5.6 array ('Sublime', 'PHPStorm') // PHP 5.6 array ('Eclipse', 'Sublime', 'PHPStorm')

Nuevas características en PHP 5.6

Expresiones escalares constantes

Con el lanzamiento de PHP 5.6, es posible proporcionar una expresión escalar que incluya literales numéricos y de cadena. En versiones anteriores de PHP, se esperaba que fuera un valor estático de argumentos de función constante y declaración de propiedad.

const ONE = 1; // Expresión escalar en constante constante TWO = ONE * 2; class helloWorld // Expresión escalar en propiedad const TRES = DOS + 1; // Expresión escalar en métodos public hello f ($ a = ONE + self :: THREE) return $ a;  echo (new helloWorld) -> hello (). "\ n";

Funciones variables a través de "..."

Antes estábamos usando func_get_args () para obtener todos los argumentos disponibles en una llamada de función, pero con PHP 5.6, esto puede eliminarse ya que podemos obtener fácilmente esa facilidad con el ... operador.

function myTools ($ name,… $ tools) echo "Name:". $ nombre.
'; echo "My Tool Count:". contar (herramientas); myTools ('Avinash', 'Eclipse'); // Output: // Nombre: Avinash // My Tool Count: 1 myTools ('Avinash', 'Eclipse', 'Sublime'); // Output: // Nombre: Avinash // My Tool Count: 2 myTools ('Avinash', 'Eclipse', 'Sublime', 'PHPStorm'); // Resultado: // Nombre: Avinash // Mi cuenta de herramientas: 3

Desempaquetado de argumentos

Podemos utilizar el mismo operador (... ) para desempaquetar cualquier argumento que sea una matriz o un conjunto de objetos Traversable. 

function myTools ($ name, $ tool1, $ tool2, $ tool3) echo "Name:". $ nombre.
'; echo "Tool1:", $ tool1. '
'; echo "Tool2:", $ tool2. '
'; echo "Tool3:", $ tool3; $ myTools = ['Eclipse', 'Sublime', 'PHPStorm']; myTools ('Avinash', ... $ myTools); // Resultado: // Nombre: Avinash // Tool1: Eclipse // Tool1: Sublime // Tool1: PHPStorm

** taquigrafía

los ** Se ha agregado el operador para la exponenciación. Tenemos soporte para el operador de taquigrafía con la misma facilidad.

echo 2 ** 3; eco "
"; $ a = 2; $ a ** = 3; echo $ a; // Salida // 8 // 8

Tenga en cuenta que el orden de las operaciones entra en juego con este operador. Por favor, mire el siguiente ejemplo para una comprensión clara:

echo 2 ** 2 ** 4;

Se podría esperar que devuelva 256 como la agrupación sería como (2 ** 2) ** 4, Pero ese no es el caso aquí. El resultado real sería 65,536, ya que la agrupación sería de derecha a izquierda y se analizará como 2 ** (2 ** 4).

phpdbg

Se ha agregado un depurador interactivo llamado phpdbg en PHP 5.6. Por favor visite el documento oficial para phpdbg.

Este depurador phpdbg se implementa como un módulo SAPI.

__información de depuración()

Un nuevo método mágico agregado en PHP 5.6 le permite cambiar las propiedades y los valores de un objeto cuando el objeto se genera utilizando var_dump ().

clase demoDebugInfo () private $ val; función pública __construct ($ val) $ this-> val = $ val;  función pública __debuginfo () return ['iamchanged' => $ this-> val + 3; ];  $ debugInfo = new demoDebugInfo (50); // Obtendremos una matriz alterada que se devuelve mediante el método megic de __debuginfo. var_dump ($ debugInfo);

Codificación de caracteres por defecto

El conjunto de caracteres predeterminado para el htmlentities (), html_entity_decode () y htmlspecialchars () Las funciones se pueden configurar usando default_charset ().

Carga de archivos grandes

Es posible subir un archivo de más de 2 GB..

php: // la entrada es reutilizable

php: // input se puede utilizar tantas veces como quiera leer datos. Esta característica ofrece una gran reducción en la memoria en comparación con la lectura. ENVIAR datos.

usa la función y usa const

los utilizar Se ha ofrecido al operador para soportar la extensión de constantes y funciones. Esto se puede realizar utilizando el const y el utilizar funciones, respectivamente. Anteriormente este operador estaba limitado a la clase solamente.

Características en desuso

Llamar desde contexto incompatible

Cuando intenta acceder de forma estática a un método no estático o a un método estático que utiliza un contexto de objeto, generará inmediatamente E_DEPRECATED error.

class helloWorld () public static hiWorld ()  $ hello = new helloWorld (); $ hola-> hiWorld (); // Antes del error de PHP 5.6 E_STRICT // Del error de PHP 5.6 E_DEPRECATED

$ HTTP_RAW_POST_DATA

$ HTTP_RAW_POST_DATA está en desuso ahora. Deberiamos estar usando php: // entrada en lugar.

Configuración de codificación

Con el lanzamiento de la default_charset () configuración, la opción relacionada está en desuso para iconv y mbstring.

Lista de funciones modificadas

Puede encontrar una lista de todas las funciones modificadas en PHP 5.6 en el último Manual de PHP.

Lista de nuevas funciones

Puede encontrar una lista de todas las funciones nuevas en PHP 5.6 en esta sección del Manual de PHP..

Conclusión

Mientras el equipo de PHP está trabajando en la próxima versión de PHP, yo diría que PHP 5.6 se ha enviado con una gran cantidad de mejoras y adiciones de funciones, y ofrece una de las actualizaciones más sencillas de versiones anteriores..

No olvide informarnos sobre cualquier pregunta o comentario que pueda tener en el feed a continuación..