Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

266
Views
¿En XAMPP los números actúan diferente a los servidores reales?

Noté que ocurría un error solo con XAMPP.

Probé con otras 4 cuentas de alojamiento en vivo (incluidas AWS, hostgator y otras 2), todas actúan de la misma manera sobre los números pero no sobre XAMPP. Esto es lo que sucede cuando se ejecuta el mismo eco en servidores reales y XAMPP:

 /* ALL SERVERS */ $testid = 5039307356925138; echo (int)$testid;// 5039307356925138 echo $testid;// 5039307356925138 /* XAMPP AT WINDOWS 10 LOCALHOST*/ $testid = 5039307356925138; echo (int)$testid;// 753691858 echo $testid;// 5.03930735692514E+15

¿¡Qué significa esto y por qué!?

Después de trabajar durante horas en el tema, revisando cada publicación del foro,

Aumenté la precisión en php.ini y reinicié apache:

precisión = 20 (¡tenga en cuenta que todos los servidores en vivo son solo 12!)

Ahora es:

 /* XAMPP */ $testid = 5039307356925138; echo (int)$testid;// 753691858 echo $testid;// 5039307356925138

Como ya puede adivinar, todavía no es una solución y los scripts no se ejecutan correctamente porque XAMPP trata 5039307356925138 como 753691858?!?

Además, aumentar demasiado la precisión causó problemas como 3.250000000001% o algo donde se usan otros números.

Intenté volver a instalar XAMPP con una nueva versión e intenté esto en otra computadora, pero todos son iguales.

Para aquellos de ustedes que usan XAMPP en Windows localhost, ¿ven el mismo problema?

¿Cuál podría ser la causa? ¿¿¿¿Como arreglarlo????

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Como está utilizando XAMPP, solo tiene 32 bits para Windows. Esto a su vez significa que el número no puede exceder el rango de [−2 147 483 648, 2 147 483 647]. En Linux e iOS, creo que hay una versión de 64 bits para XAMPP.

Por lo tanto, es muy probable que sus hosts usen una versión de 64 bits, lo que permitiría el uso de números mucho más altos como enteros. Lo que está viendo se está desbordando , se alcanza el límite y "comienza de nuevo" desde el rango inferior.

Dado que PHP se escribe de forma flexible, una cadena y un entero se pueden comparar con el mismo valor, por ejemplo

 "10" == 10 // true "11" == 10 // false "10" === 10 // false because of strict comparison

Entonces podría ser una solución trabajar con cadenas en lugar de números enteros (porque no hay limitación en la longitud de una cadena).


Desde el anuncio de lanzamiento de PHP7, se anunció que a partir de PHP7 habrá soporte constante para 64 bits. Entonces, si el sistema operativo lo ejecuta y el motor es de 64 bits con PHP7 o superior, tendrá soporte completo para 64 bits (lo que a su vez le permite usar valores enteros más altos).

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!