Andrei Pelinescu-Onciul writes:
$var =
'';
// This will evaluate to TRUE so the text will be printed.
if (isset($var)) {
echo "This var is set so I will print.";
}
This will evaluate to TRUE also in sip-router (if (defined($var))).
The question is how is if ($foo == "") evaluated when $foo is
undefined in php.
fine if defined($var) on $var = "" is true.
Why would you want sip-router to behave differently
then other scripting
languages?
i don't want that. in php
unset($foo);
if ($foo == "") {
echo "yes\n";
} else {
echo "no\n";
}
prints "yes", but
unset($foo);
if ($foo === "") {
echo "yes\n";
} else {
echo "no\n";
}
prints "no".
=== operator thus allows me to tell, if a var is undefined or assigned
"" value.
== is not good for testing if variable is defined, which prompted this
discussion:
!defined $fU fastest
$fU == "" - extra string conversion
$fU == $null slowest (has to go through a pv call and string or integer
conversion)
so the middle one is not ok for that purpose, but it doesn't need to be
because defined() exists.
-- juha