W jednym bicie kodu, nad którym pracuję, muszę pobrać wartość z bazy danych i sprawdzić, czy jest to 0
. Początkowo napisałem to jako:Jak najlepiej porównać do 0 w PHP?
if ($myVal == 0) { ...
Ale kiedy spojrzał na nią znowu dzisiaj, zdałem sobie sprawę błąd tam:
var_dump("foo" == 0); // bool(true)
// and while we're here...
var_dump(intval("foo")); // int(0)
Ponieważ wartość ta pochodzi z bazy danych, które zwykle oznacza to będzie ciąg, więc przypuszczam, że mogę to zrobić:
if ($myVal === "0")
ale wydaje się sprzeczne z intuicją, ponieważ tak naprawdę chcą mieć do czynienia z liczbą całkowitą, a th wydaje się pokazywać, że pracujemy z ciągami. (Mam nadzieję, że ma to sens dla ciebie). Również nie powinno być nieoczekiwane, że dowolny dany akcesor DB będzie rzutować wartości na ich odpowiedni typ, biorąc pod uwagę typ pola.
Jakiej metody używasz do sprawdzania wartości 0, jeśli może to być ciąg lub int?
+1 Wydaje się tak proste, ale zaskakująco interesujące pytanie z żonglerki typu PHP. – cletus