PHP 2021 - merita sau nu

diferenta intre floor si truncate fiind?
ps: idee de aplicatie. un editor care sa-ti spuna care-s parametrii acceptati de o metoda.
serios acum, si pe mine ma enerveaza. da ma ajuta ide-ul.

le: ar fi frumos sa-i pot spune. da probabil pentru ca si asa functia respectiva are 231121 parametrii cred ca-i mai simplu sa faci number_format(floor(x)…)

1 Like

Diferența e că nu toată lumea lucrează doar cu numere pozitive. floor(-1.5) ar da -2.

1 Like

mda, m-am prins dupa ce-am scris. dar m-as fi asteptat sa stie sa faca asta nativ. aparent nu

Din cate tin minte vin de la librariile de c din spate, intrucat aceste functii de php, de obicei, sunt doar wrappere pentru ele.

Si am auzit la un momentdat ca sunt consistente in ideea de:

  • Toate cu string sunt haystack needle
  • Toate cu array sunt needle haystack

De fapt pare chiar o misiune complicată să faci acel truncate în php, trebuie să scrii ceva de genul $x > 0 ? floor($x) : ceil($x).

C nu are funcțiii pentru lucrat cu array-urile, deci sigur nu vine de acolo incosistența.

poti sa-l faci cu intval daca scopul e sa arunci zecimalele

Așa e, dar la cât de inconsistent e php nu era exclus să facă round sau cine știe ce altă năzdrăvănie și acolo :slight_smile:

Apropo de dolar, mie îmi place că în php variabilele sunt prefixate cu $. Pentru editoare e mult mai simplu să facă sintax highlighting, plus că nu există riscul de-a folosi din greșeală vreun cuvânt cheie sau nume de clasă/funcție/whatever. De exemplu uneori mă frustrează că în alte limbaje nu pot folosi “class”, “for” șamd ca nume de variabilă.

1 Like

Retinusem partial corect Rasmus Lerdorf – 25 years of PHP - YouTube

For reference :grin:


Si Java are acum valoare :laughing:

https://www.local.com/index.php?user_id=1&user[id=4

Da, $_GET['user_id'] returnează 4.


Pune tu degetul unde scrie că face round.


Mai puțin array_filter vs array_map vs array_walk :smiley:

Si apoi vine Javascript-ul unde 0.1+0.2 = 0.30000000000000004.

Bine ca cineva a pus un fir despre PHP ca prea ne spurcam pe cel cu “Unde’s developerii”.

3 Likes

Si la 0.30000000000000004 biti in fata, Jaaaaaaaaaavaaaaaaaaaaaaaaa!
image


n-am spus ca scrie undeva. am spus doar ca mie mi se pare un comportament normal. daca le taia erau altii care se plangeau ca de ce le arunca, ca-s importante.

Nu, nu merită.

Asta nu e problema limbajului, ci a modului în care se aproximează numerele reale în format binar. Toate limbajele fac așa, poate mai puțin cele care au avut bunul simț să implementeze tipul “fixed decimal”.

https://en.wikipedia.org/wiki/Floating-point_arithmetic

LE PHP face fix la fel daca il provoci sa afișeze suficient de multe zecimale:

printf("%.20f", 0.1 + 0.2);
0.30000000000000004441
1 Like

Sunt doar eu, sau este aceeasi discutie ca aici PHP in 2021. La fel de relevant?
But with a very small twist ?

Sau poate acest thread, mai vechi.