PHP 5.4 a fondo |
Lunes, 09 de Abril de 2012 18:19 |
Hace poco anunciábamos el lanzamiento de PHP 5.4.0 y hablábamos de pasada sobre las nuevas características que incluye. Pues bien, hoy vamos a entrar en mayor detalle sobre los cambios de la nueva versión para comprobar de que forma nos afecta a la hora de desarrollar en PHP. Uno de los cambios que más pueden afectar a nuestro código y nuestras aplicaciones es que el “Safe Mode” y “Magic Quotes” han desaparecido del lenguaje. También se ha eliminado la posibilidad de pasar argumentos por referencia al invocar un método o función, es decir, no se puede llamar a una función utilizando una referencia: // Esto resulta en un error fatal:
Si necesitamos pasar un valor por referencia a la función function multiplicame(&$cantidad) {
Break y continue ya no aceptan argumentos variables aunque los argumentos estáticos siguen funcionando: // Resulta en un error fatal
A partir de esta versión no se puede fijar el timezone utilizando la variable de entorno TZ se obliga a fijar el valor de la opción A su vez, desaparecen en esta versión las siguientes funciones:
Novedades y adiciones al lenguaje
$page = [‘name’ => ‘Genbetadev’, ‘url’ => ‘http://www.genbetadev.com’, ‘category’ => ‘Technology’, ‘format’ => ‘Blog’];
Otra adición esperada es la desreferencia de arrays como valores de retorno de métodos y funciones, feature que incorporan otros lenguajes dinámicos como Python o JavaScript y en PHP la verdad es que se echaba de menos: ...
Ahora podemos acceder a los miembros de una clase al instanciar objetos de la misma: $page = (new Page($pageData))->initialize();
Otra adición que puede ser considerada muy potente o muy fea (y peligrosa) es la nueva sintaxis con posibilidad de expresiones para la llamada de métodos estáticos de las clases: ...
A mi la verdad es que se me ocurren infinitas posibilidades.
Traits
No debemos pensar sobre los traits en términos similares a una interfaz en Java. Al igual que las interfaces, un trait es similar a una clase pero solo define agrupaciones de funcionalidad mientras que una interfaz define que es lo que una clase debe implementar para cumplir con un contrato especificado. No es posible instanciar un trait, al igual que no es posible instanciar una clase virtual pura ( o ADT ) en C++ o un interface en Java. Para utilizar un trait en nuestra clase utilizamos la palabra reservada < ?php
Con resutado: I'm breathing!
El uso de traits es bastante complejo y es, creo, la mayor adición al lenguaje en esta nueva versión. La precedencia de métodos heredados de una clase base puede ser sobreescrita por un método miembro en un trait que adopta además el papel de hija de la clase padre inicial al usarla en una clase hija: < ?php
Que produce el siguiente resultado:
Recomiendo que le echéis un vistazo a la página sobre traits en el manual de ayuda de PHP pues haymuchísimos más casos de uso que no hemos tratado aquí hoy como la herencia de múltiples traits o la resolución de conflictos.
CLI Web Server
De momento esto es todo, como podéis comprobar, la nueva versión de PHP viene con novedades y cambios muy esperados y no dudamos en que el futuro, el lenguaje seguirá mejorando. Más informacón | Página web de PHP Fuente: http://www.genbetadev.com/php/php-5-4-a-fondo
|
Comentarios
you write. The world hopes fοr еven more passionate
writers suсh aѕ you աɦߋ arеn't afraid tߋ mention Һow
tҺey Ƅelieve. Аlways go ɑfter your heart.
Stop bу mу blog ost Friendship village οf
columbus: http://lakeinnovation.org/wiki/index.php/How_To_Use_Facebook_Advertising_To_Your_Benefit