In un bit di codice su cui sto lavorando, ho bisogno di estrarre un valore dal database e controllare se è 0
. In origine, avevo scritto questo come:Il modo migliore per confrontare con 0 in PHP?
if ($myVal == 0) { ...
Ma quando ho guardato di nuovo oggi, mi sono reso conto di un bug non:
var_dump("foo" == 0); // bool(true)
// and while we're here...
var_dump(intval("foo")); // int(0)
Dal momento che questo valore proviene dal database, che solito significa che sarà una stringa, quindi suppongo che potrei fare questo:
if ($myVal === "0")
ma sembra contro-intuitivo, dato che in realtà voglio avere a che fare con un numero intero, e tH sembrerebbe mostrare che stiamo lavorando con le stringhe. (spero che abbia senso per voi.) Inoltre, non dovrebbe essere inaspettato che qualsiasi data accessor di DB possa trasmettere valori al tipo appropriato, dato il tipo di campo.
Quale metodo si usa per verificare un valore di 0 quando potrebbe essere una stringa o un int?
+1 Sembra una domanda di base, ma sorprendentemente interessante, data la giocoleria di tipo PHP. – cletus