sziasztok!
belekerültem egy olyan szituációban drupalban, ahol egy modult kell írnom egy aprósághoz php-ban. nem vagyok jártas php-ban, ezért egy egyszerű dolog is képes volt megakasztani:
adott az alábbi kódrészlet:
Kód:
$maxexp = db_result(db_query("SELECT max(expiration) FROM {uc_roles_expirations} WHERE UID=%d and rid=%d", $uid_befizeto, 4));
dpm('DB query finished');
dpm('me = '.$maxexp);
if($maxexp) {
dpm('True branch');
} else {
dpm('False branch');
}
a tartalom mentése után lefut ez is, és a következő üzenetek jelennek meg a dpm() hatására:
Kód:
DB query finished
me =
A tartalom mentése sikeres volt, stb.
nem értem, hogy miért lehetséges, hogy elszállás nélkül lemegy a program és mégis sem az if igaz sem a hamis ágába nem futok bele.
további vizsgálódás után azt tapasztaltam, hogy az is_null($maxexp) 1-et ad vissza kiíratva, gondolom a TRUE változik kiírva "1" stringgé..
ennek megörültem, viszont ha átírom így:
Kód:
if(!is_null($maxexp)) {
....
furcsa módon akkor sem fut le sem az igaz, sem a hamis ág. ez hogyan lehetséges? sajnos nincs belőve a távoli szerveren a debuggolás, egyelőre csak dpm()-ekkel tudok nyomkövetni.
látja valaki, hogy mit csinálok rosszul?
Könyvjelzők