Funciones actualizadas en PHP 5.5

En un post anterior vimos las nuevas funcionalidades que PHP 5.5 introduce, en este vamos a ver cambios que se han hecho en funciones ya existentes como por ejemplo la combinación de foreach y list, las mejoras en la función empty, el comportamiento de unpack y la eliminaciones de funciones previamente deprecadas.

Combinando foreach con list

Como desarrollador, una de las tareas comunes que veo de forma regular es el uso de loops en un conjunto de resultados. Dependiendo de las circunstancias, es posible que tenga que asignar un grupo de variables a valores de propiedades o valores de una matriz. Hasta este momento ha sido un proceso manual, pero en PHP 5.5 es posible asignar estos valores directamente utilizando la función list. Esto me permite recorrer el vector y desempacar matrices anidadas en variables en un bucle. Solo hay una limitación, no puedo utilizar la lista como un elemento clave.

Quedaría algo como este foreach($row as list($var1, $var2)).

Comprobar cualquier cosa con empty

Este cambio es realmente pequeño pero muy útil, a mi en particular es uno de los cambios que más me han gustado en esta versión y que llevaba pidiendo por un tiempo. Imaginemos que queremos comprobar el valor de retorno de una función para ver si está vacío. Si no tengo necesidad de saber exactamente lo que se volvió, entonces ¿por qué debería molestarme en asignarlo a una variable? Hasta este punto, los desarrolladores de PHP tuvimos que asignar explícitamente una variable a un valor devuelto por una función o un método.

Normalización de valores boleanos y el comportamiento de la función unpack

En PHP 5.5 se han incluido algunas normalizaciones a su comportamiento. El primero que voy a discutir en gran medida es relativamente trivial y técnicamente una nueva función. Sin embargo, al mismo tiempo que es una actualización. Uniéndose a las existentes strval, intval y floatval existe un nuevo jugador boolval. Boolval toma un valor escalar y devuelve un valor booleano. Esto es funcionalmente equivalente a (bool)$var. Pero lo bueno es que puede ser utilizado como una función de retorno (callback).

El otro cambio es que pack () y unpack () son más compatibles con Perl.

Eliminadas funcionalidades incompatibles y en desuso

A veces una funcionalidad debe ser retirada y, aunque generalmente estos cambios tendrán muy poco impacto en la mayoría de los desarrollos, sigue siendo importante para un pequeño subconjunto de usuarios. El soporte para Windows XP y Windows 2003 se retira ahora oficialmente de PHP. Además PHP ya no admite las funciones que devuelven los identificadores de los logos de PHP (php_logo_guid, php_easter_egg_logo_guid, php_real_logo_guid, and zend_logo_guid).

Si tienes una base de código que es no inglesa y no ASCII debes ser consciente que la sensibilidad ya no es específico del entorno local. La coincidencia de funciones, clases y nombres de constantes ahora sigue reglas ASCII que mejora el soporte para idiomas como el turco.

Ahora veamos algunas funciones y librerías en desuso (se eliminarán en versiones futuras). La primera es la extensión original de MySQL. En su lugar debemos utilizar MySQLi o la extensión PDO MySQL. preg replaced/e está en desuso también y en su lugar debemos utilizar preg replace callback. Mcrypt tiene una serie de funciones que han quedado en desuso (mcrypt cbc, mcrypt cfb, mcrypt ecb y mcrypt ofb), si las estás usando debes cambiarlas por mcrypt generic y mdecrypt generic.

En resumen estos dos post envuelven los cambios funcionales más profundos en PHP 5.5 con respecto a versiones anteriores de PHP.

Comentarios