On Nov 09, 2009 at 22:58, Juha Heinanen <[email protected]> wrote: > Andrei Pelinescu-Onciul writes: > > > > $var(tmp) = $(ru{uri.param,alias}); > > > xlog("L_INFO", "Alias param is <$var(tmp)>\n"); > > > if ($var(tmp)) { > > > xlog("L_INFO", "Alias param is <$var(tmp)>\n"); > > > $du = $var(tmp); > > ^^^^^^^^ > > shouldn't it be $du = "sip:" + $var(tmp) ? > > andrei, > > yes, it should have been like that. now handle_alias() takes care of > it. > > > > why does the test > > > > > > if ($var(tmp)) { > > > > > > fail to figure out that $var(tmp) has value? > > > > You should use if ($var(tmp)!=""). > > if ($var(tmp)) works only for integers. If $var(tmp) is not integer and > > not a string of the form "1234", it will evaluate to 0 in an integer > > context. The if() it's an integer context (no boolean context in sr). > > thanks for the explanation. i have to say though that as a normal > programmer, i'm not used to such behavior. > > in order to avoid programming mistakes like that, could it be possible > to produce a error message if such a test is attempted, i.e., test on > string valued pvar?
We could generate an error message, but only at runtime (because we don't know the type of $var(tmp) at script compile time). Andrei _______________________________________________ sr-dev mailing list [email protected] http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
