PHP 8.0.0 Released

Este oficial :slight_smile:

2 Likes

Si este un “major update”. Toate sunt.

image
:grin:

Deci php vrea sa fie TS? Cred ca e evidenta convergenta asta

Match expression imi pare cea mai misto imbunatatire :smiley: lipseste in ts/js. am dat de ea in Scala.

*0 == ‘foobar’ // true (php7) => 0 == ‘foobar’ // false (php8). ce? :woozy_face: :crazy_face:

2 Likes

1 Like

Stai sa vezi cate buguri introduce chestia asta :slight_smile:

3 Likes

In JS poti face ceva similar cu expression matching cu obiecte dinamice sau simple obiecte. Matcherul din PHP e similar cu ce am vazut in ReasonML. Probabil ajunge curand si in JS.


const x = {
["proprietate"]: { obiect primitiv },
["proprietate2"]: () => {
  do something
 } 
}

const result = x[expresie] sau x[expresie]();

cel putin eu, de multe ori, dupa ce citesc diferentele dintre noua versiune si cea veche, le uit dupa juma de ora. Sa vezi cate erori ‘neintelese’ vor avea cei care fac update aplicatiilor mai vechi la v8, scapandu-le noutatea asta :crazy_face: :face_with_hand_over_mouth:

@isti37, n-as zice ca seamana deloc expression matching din js cu noul matching din php :grin: ori nu-mi dau eu seama de ceva. matching pattern e doar un switch mai frumos, dar te scapa de consumul inutil de linii.

daca ar scapa de dolarelul ala, ar fi chiar un limbaj placut :grin:

Sa fie aia ultima problema. :grin:

PS: Vezi mai jos de ce acel $

Cat despre casting, comparatii si alte chestii, desi nu am lucrat cu php prea mult
https://twitter.com/afilina/status/1288127772930355201?s=20

1 Like

PHP are valoare, nu ca alte limbaje…

9 Likes

Si ce faci cand ai $$variabila sau $this->$proprietate?

Este o prostie modificarea asta, pt ca intval("foobar") === 0 este true si pe 8.

De ce ai folosi asa ceva?
Doar intreb.


Iti creste valoarea! :smiley:

Dacă așa zice la manual, cum ai vrea să se comporte? :confused:

The integer value of var on success, or 0 on failure. Empty arrays return 0, non-empty arrays return 1.

Si bucata asta:
"Strings will most likely return 0 although this depends on the leftmost characters of the string. The common rules of *integer casting apply."
integer casting
SI atunci, in 8 nu mai este logic “foobar” == 0 → false, pt ca nu mai face type cast la integer.

un articol dragut pe aceasta tema https://thephp.cc/news/2020/11/happy-25th-anniversary-php

PHP 8 is significantly better because it contains a lot less of my code.

Nu-mi dau seama dacă e modest, dacă încearcă să fie amuzant sau dacă chiar crede asta.

https://twitter.com/rasmus/status/1332004256661037056?s=20

Chiar crede asta. Din cate stiu rasmus nu a mai scris cod pentru PHP de ceva vreme(asa cum mentioneaza si el), si prin acea propozitie vrea sa spuna ca a fost optimizat codul fata de ce facuse el initial.