Está en la página 1de 5

PHP 7: El cambio en PHP

Eduardo Jos vila Portillo*

Resumen:
En el presente artculo se analiza las caractersticas de la ltima versin de php, sus cambios
en relacin a versiones anteriores, el impacto que representa sobre plataformas importantes
basadas en PHP y la programacin web.

Abstract :
In this article we analyze the features of PHP version 7.0, the changes in relation to past
versions, the impact on PHP based platforms and the web programming.

1. Introduccin hechos en C; aprovechando as la


Segn php.net3, PHP es un lenguaje libre velocidad de estos ensamblados, sin
para programacin web, popularizado en necesidad de hacer el embebido de
masa desde el 2000, en su versin 4.0, ejecutables C/C++ mientras
pero creada por Rasmus Lerdorf en el programamos, como antes estbamos
ao de 1994, con el objetivo de ejecutar acostumbrados a realizar.
tareas pequeas tal como lo prueba su
nombre PHP: Personal Home Pages. Esto cierra un poco la brecha entre los
Siglas que tras la constante mejora de desarrolladores tradicionales que usan
su kernel y aumento de potencia cdigo 100% PHP en sus pginas y los
terminan desfasadas por el acrnimo avanzados que incrustan ejecutables
recursivo PHP:PHP Hypertext hechos en C/C++ para aumentar la
Preprocessor en su versin 3.0; desde velocidad de los procesos. Como
entonces suma seguidores y crticas que conclusin ya no es necesario embeber
lo obligan a mejorar. Como resultado ejecutables C/C++, php 7 duplica la
tenemos la versin 7 de PHP, velocidad de PHP5.6 con su API hecha
ofrecindonos nuevas caractersticas en C, segn Rasmus nos comenta5.
algunas de ellas innovadoras en el
campo de la programacin web, como b. Retorno con tipos de datos
nos lo comenta Leroy Ley en su artculo2 Las funciones en PHP ya no retornan un
PHP 7: Lo nuevo, publicado en valor genrico, sino que se deber
mycyberacademy.com, una revista asignar el tipo del valor que se devuelve,
digital especalizada en desarrollo y sin importar que sean valores primitivos
tecnologia. u objetos de clases creadas por el
usuario.
2. Comparacin entre PHP 7 y class C {}
versiones anteriores
function getC() : C
a. Renovacin en el API {
Rasmus Lerdorf, durante la ponencia return new C;
speeding up the web with PHP 71 en }
San Francisco, U.S.A. nos comenta que
PHP 7 cuenta con una API de ejecutables var_dump(getC());

* Estudiante de Ingeniera en ciencias de la computacin de la Universidad Don Bosco.


Desarrollador web PHP en la Universidad Don Bosco.
El tipo de valor se coloca despus del Lo que Leroy Ley no menciona, es la
parntesis de cierre precedido del potencial segunda utilidad de este
carcter dos puntos (:). operador, y me refiero a la eliminacin
del uso desordenado del operador or.
Normalmente un programador PHP
c. Operador de fusin de NULL utiliza el operador or para mandar un
Segn nos lo muestra Leroy en su mensaje en caso una funcin retorne
artculo, el operador de fusin est false. por ejemplo:
compuesto por dos signos de
interrogacin y nos da ms orden en el function retorna0(){return false;}
cdigo php eliminando la necesidad de
usar operadores ternarios. retorna0() or die("Funcin retorno false");

/* Imprime la frase funcin retorno false */


Bueno el operador de fusin ofrece una
alternativa, mismo objetivo, mismo Cdigo desfasado
resultado ms elegancia

Se ocupa para saber si existe o no una Pero con PHP 7 el cdigo se hace ms
variable, sin usar un if, sin usar el isset y ordenado:
a veces el operador de negacin y sin
usar el operador [condicin]?[true] function retorna0(){return false;}
:[false].
retorna0() ?? die("Funcin retorno false");

if(!isset($var)){ die(Var no existe); } /* Imprime la frase funcin retorno false */

Cdigo php 7
//o sino, con operador ternario
(!isset($var))?die(Var no existe):
Notamos ms orden y de elegancia pues
Cdigo desfasado
dejamos de abusar de las caractersticas
bsicas del operador lgico or.
En PHP 7 la sintaxis ser:

$var ?? die(Var no existe);


d. Operador Spaceship
Cdigo PHP 7 Podemos leer con amplio detalle una
entrada hecha por php.net donde nos
Segn Leroy, este operador es verstil e comenta los fines de este operador
inclusive se puede concatenar. Como
ejemplo digamos que queremos asignar This RFC adds a new operator for
valor a una variable desde otra recogida combined comparison. Similar to
strcmp()
por GET, por POST o por otra variable y
si no existe asignar cero; php7 lo
como un signo de menor que, un signo
resuelve as:
de igual y otro de mayor que (<=>)El
operador define cul valor es mayor,
$a=$_POST[v] ??$_GET[V] ??$v ?? 0 cual es menor o si son iguales?
Cdigo PHP 7

Problema resuelto en Una sola lnea de


cdigo!!
terminado una etapa y comienza otra.
$v1 = 100;
$v2 = 1;
$v = ($v1<$v2)?-1:(($v1>$v2)?1:0); 3. PHP, factor de discriminacin
// 1 Muchos programadores web, bajo la idea
que PHP es un lenguaje desordenado y
$v1 = 22; poco restrictivo, no lo prefieren; pero
$v2 = 9000; PHP 7 es una clara mejora en esa
$v = ($v1<$v2)?-1:(($v1>$v2)?1:0);
debilidad y una clara mejora en la
// -1
eficiencia. Es mas las graficas lo
$v1 = 5; demuestran, las aplicaciones hechas con
$v2 = 5; PHP 7 mantienen ms request por
$v = ($v1<$v2)?-1:(($v1>$v2)?1:0); segundo que las hechas con las otras
// 0 versiones. La prxima vez que elija una
Cdigo desfasado version de una plataforma basada en
PHP para uso institucional, revisar con
detalle la versin del PHP utilizado, la
este cdigo que implica 2 procesos con
aplicacin basada en PHP 7 es ms
operadores ternarios, se ha visto
eficiente para manejar la memoria RAM,
desfasado por un solo operador como se
Segn afirma Rasmus Lerdorf, las
muestra en el siguiente ejemplo:
mismas tareas son realizadas una
cantidad menor de procesos; dado como
$v1 = 100; resultado web application ms giles que
$v2 = 1; las desarrolladas con php 5.6. Como
$v = $v1<=>$v2; // devuelve 1 Lerdorf lo demuestra en las figuras 1, 2,
Cdigo PHP 7 3y4

$v1 = 22;
$v2 = 9000;
$v = $v1<=>$v2; // devuelve -1

$v1 = 5;
$v2 = 5;
$v = $v1<=>$v2; // devuelve 0

Cdigo PHP 7

e. Todava hay mas


Por su puesto hay muchos ms cambios,
pero son estos los que se consideraron Figura 1 request por segundo que realiza
ms significativos al momento de Moodle2.9 dependiendo de la versin de PHP
trabajar con PHP. Arrays constantes,
divisin entera, entre otras, son
caractersticas que Leroy nos explica;
pero considero que con las mencionadas
hasta aqu se demuestra que PHP ha
Figura 4 Request/segundo que realiza el
CMS ZenCart dependiendo de la versin de
PHP

Figura 2 Request/segundo que realiza el


CMS Drupal dependiendo de la versin de
PHP
4. Conclusiones
Que ms decir, los creadores de PHP,
sobretodo Rasmus Lerdorf, no ignoraron
las crticas hacia su lenguaje, dan un
salto significativo con todas las
caractersticas que trae, siendo las ms
impresionantes:

- Mejora significativa de la API


- Funciones de retorno de datos
- Operador de fusin null
- Operador Spaceship o RFC

En fin desde sus versiones 3, 4 y 5 los


cambios en php han sido tan poco
susceptibles, en cuanto a eficiencia, que
daba lo mismo programar en PHP 4 o en
PHP 5.6; pero con su nueva versin,
esta vez nos ofrece ms orden y
elegancia en el cdigo para nosotros
Figura 3 Request/segundo que realiza el como programadores y ms eficiencia en
CMS Wordpress dependiendo de la versin de el producto terminado para los usuarios
PHP
finales.
Referencias bibliogrficas:

1 - Lerdorf, Rasmus (25 Abril, 2015) SPEEDING UP THE WEB WITH PHP 7, citado de
internet, del url: http://talks.php.net/fluent15, el 03 de octubre de 2015.

2 - Ley, Leroy (26 septiembre, 2015) PHP 7: Lo nuevo, citado de internet, del url:
http://mycyberacademy.com/php-7-lo-nuevo/, el 03 de octubre de 2015.

3 php.net, Pgina oficial Historia de PHP, citado de internet, del url:


http://php.net/manual/es/history.php.php , el 03 octubre de 2015.

4 - php.net, Pgina oficial PHP RFC: Combined Comparison (Spaceship) Operator,


citado de internet, del url: https://wiki.php.net/rfc/combined-comparison-operator, el 03
de octubre de 2015.

5 - php.net, Pgina oficial Migrating from PHP 5.6.x to PHP 7.0.x, citado de internet,
del url: http://php.net/manual/en/migration70.php, el 05 octubre de 2015.

6 - Lerdorf, Rasmus Documentation for the php7dev Vagrant box image, citado de
internet, del url: https://github.com/rlerdorf/php7dev, el 05 de octubre de 2015.

También podría gustarte