{"id":3025,"date":"2020-06-30T15:12:07","date_gmt":"2020-06-30T13:12:07","guid":{"rendered":"https:\/\/inlab.fib.upc.edu\/?p=3025"},"modified":"2020-06-30T15:12:07","modified_gmt":"2020-06-30T13:12:07","slug":"que-novedades-nos-traera-php-8","status":"publish","type":"post","link":"https:\/\/inlab.fib.upc.edu\/es\/uncategorized-ca\/que-novedades-nos-traera-php-8","title":{"rendered":"\u00bfQu\u00e9 novedades nos traer\u00e1 PHP 8?"},"content":{"rendered":"<p>PHP, o Hypertext Preprocessor, es un lenguaje de programaci\u00f3n muy popular usado especialmente en el desarrollo web.<\/p>\n<p>El lanzamiento de la versi\u00f3n 8 de PHP est\u00e1 previsto para el d\u00eda 3 Diciembre de 2020 y ya se conocen algunas de las principales novedades que incorporar\u00e1.<\/p>\n<p>Al tratarse de una versi\u00f3n mayor los cambios que introducir\u00e1 puede que sean incompatibles con versiones anteriores obteniendo a cambio mejoras tanto de rendimiento como caracter\u00edsticas muy interesantes.<\/p>\n<p>A continuaci\u00f3n vamos a hacer un repaso de cu\u00e1les ser\u00e1n los principales cambios, no todos, que nos vamos a encontrar en PHP 8.<\/p>\n<p><strong>Union Types<\/strong><br \/>\nLos \u201cunion types\u201d son una colecci\u00f3n de dos o m\u00e1s tipos de datos. De este modo podemos tener variables que acepten ser de tipos distintos. Por ejemplo, puedo tener un n\u00famero que puede ser usado como int o como float.<\/p>\n<p><strong>Nuevas funciones para strings<\/strong><br \/>\nPHP 8 trae tambi\u00e9n una serie de nuevas funciones para simplificar la forma en que trabajamos con el tipo string .<br \/>\nSeguramente la m\u00e1s interesante de ellas sea str_contains , la cual nos soluciona tener que emplear la funci\u00f3n strpos para comprobar si un string contiene a otro.<br \/>\nAdem\u00e1s de esta funci\u00f3n, PHP 8 incorpora dos m\u00e1s:<\/p>\n<ul>\n<li>str_starts_with para comprobar si un string comienza con un determinado string.<\/li>\n<li>str_ends_with para comprobar si un string termina con un determinado string.<\/li>\n<\/ul>\n<p><strong>Catch sin especificar la variable que recoge la excepci\u00f3n<\/strong><br \/>\nOtra mejora que trae PHP 8 es la posibilidad de especificar bloques try \/ catch sin que el catch tenga que declarar la variable que recoge la excepci\u00f3n, ya que a veces no se emplea para nada, a\u00f1adiendo ruido visual al c\u00f3digo o incluso siendo se\u00f1alado como warning por el editor.<\/p>\n<p><strong>Attributes<\/strong><br \/>\nLos atributos o anotaciones nos permiten a\u00f1adir meta datos a nuestras clases, algo que seguramente os resulte familiar si trabaj\u00e1is con frameworks como Symfony o Laravel.<br \/>\nSeg\u00fan lo propuesto en la RFC, a partir de PHP 8 podremos especificar atributos \/ anotaciones sin tener que recurrir a bloques de comentarios.<br \/>\nPara ello, lo primero que haremos ser\u00e1 crear un atributo como si de una clase se tratase y empleando el atributo &lt;&lt;PhpAttribute&gt;&gt; para que pueda ser identificado como tal.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>PHP, o Hypertext Preprocessor, es un lenguaje de programaci\u00f3n muy popular usado especialmente en el desarrollo web. El lanzamiento de la versi\u00f3n 8 de PHP est\u00e1 previsto para el d\u00eda 3 Diciembre de 2020 y ya se conocen algunas de las principales novedades que incorporar\u00e1. Al tratarse de una versi\u00f3n mayor los cambios que introducir\u00e1 [&hellip;]<\/p>\n","protected":false},"author":594,"featured_media":3022,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"experteses":[27],"class_list":["post-3025","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized-ca","experteses-knowledgeyserviceengineering-es"],"acf":[],"_links":{"self":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/3025","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/users\/594"}],"replies":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/comments?post=3025"}],"version-history":[{"count":0,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/3025\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/media\/3022"}],"wp:attachment":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/media?parent=3025"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/categories?post=3025"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/tags?post=3025"},{"taxonomy":"experteses","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/experteses?post=3025"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}