[ home ] [ a / jp / h / lain ] [ b / hum ] [ mu / tech / v / vis / x ] [ meta / nexo ]

/tech/ - Tecnología

No rompas las leyes de Isaac Asimov
Nombre
Email
Comentario
Archivo





[]
Clave (Para eliminar el post.)

  • Archivos soportados: [ jpg, jpeg, png, gif ] , [ ogg, mp3 ] , [ webm ] & [ pdf ].
  • Adjuntos soportados: [ youtube, vimeo, dailymotion, metacafe & vocaroo ].
  • Tamaño máximo total 20MB.



File: 12981233.png (2.36 MB, 1824x976) ImgOpsiqdb

2.36 MB

No.3350

Waiyados tengo una pregunta simple sobre el operador === de PHP.

Estoy desarrollando algo, pero como soy novato no sé qué pasa, en el web hosting este operador no funciona porque el primer valor a comparar retorna string, es decir, $a = ‘1’, será falso $a === 1, no se cumple la condición, en cambio, en localhost $a = 1, como es un número, $a === 1, si retorna verdadero. ¿Por qué sucede esto? Por supuesto, hay una conexión a la base de datos. ¿Hay algo que este omitiendo?
>>

No.3351

No termino de entender tu redacción pero:
"==" Es para comparar que ambos valores sean iguales.
"===" Es para comparar que sea el mismo elemento digamos "en memoria".
>>

No.3352

>>3350
1. Para dudas existe stackoverflow
2. No entiendo bien tu problema explica bien que sucede.

De lo poco que entendí dices que === no funciona como debería.
El funcionamiento de === es comparar datos y tipos de variables, si quieres saber lo que pasa logea la informacion que tienes y checa tu mismo que sucede.

Por ejemplo:

?php
// Imaginemos que $v1 viene de una base de datos
$v1 = '2';
$v2 = 2;

echo "v1 = ";
var_dump ($v1);

echo "v2 = ";
var_dump ($v2);

// echo "<pre>";
// Comparacion debil
echo "\n¿v1 == v2? \n";
echo $v1 == $v2? "Si" : "No";

// Comparacion estricta
echo "\n¿v1 === v2? \n";
echo $v1 === $v2? "Si" : "No";


En la primera debe de dar Sí y en la segunda No
>>

No.3354

>>3351
>>3352

Muchas gracias por sus respuestas, tienen razón no he podido formular bien la pregunta, lo que digo es que tengo este código por ejemplo:

return $usuario->id === 1;

En el web hosting ese id devolvía un string, en cambio, en localhost devolvía un entero, eso lo pude verificar con var_dump.

Y no sé porque sucede esto, aunque bueno, parece que se arreglo de forma sola, es muy extraño.

Recuerda este banner kek
>>2419
>>

No.3355

>>3354
Es que cambia dependiendo la version de PHP, haz una rchivo de prueba y pon phpinfo(); para ver que tan diferentes son las versiones, si no dices que version es obviamente es dificil darte una solucion
>>

No.3356

>>3355
A la final no funcionó, me tocó cambiar el operador en todos los archivos donde lo utilizaba, y poner el de comparación débil. La versión en producción es 7.4, y en desarrollo es 8.0. Es solo una aplicación de prueba, pero esto de desplegar algo para que sea vea funcional en un web hosting es un dilema. Espero no estar dejando alguna vulnerabilidad.
>>

No.3357

>>3356
Bah eso siempre
>>

No.3398

>>3354
¿Por qué usas OOP en php?


[Post a Reply]
[ ]
[ home ] [ a / jp / h / lain ] [ b / hum ] [ mu / tech / v / vis / x ] [ meta / nexo ]