'false' - boolean interpratation

php.internals

Robert Janeczek

22 years ago
is there any way that string 'false' (and its variations with capital letters) could be interpeted as boolean of value false? i have xml configuration file that has some switches (true/false) in it. when i use this values in functions that require booleans i get true every time (as string isn`t empty) :/ i hoped that at least with explicit type cast i could go around this problem, but i didn`t help. how about adding this special case to conversion rules? creating if`s around such code doesn`t make me happy at all :] rash

Hans Lellelid

22 years ago
Robert Janeczek wrote:
> is there any way that string 'false' (and its variations with capital > letters) could be interpeted as boolean of value false? i have xml > configuration file that has some switches (true/false) in it. when i use > this values in functions that require booleans i get true every time (as > string isn`t empty) :/ i hoped that at least with explicit type cast i could > go around this problem, but i didn`t help. > how about adding this special case to conversion rules? creating if`s around > such code doesn`t make me happy at all :]
IMO better as userland function/method (this is extract from a Phing class): ... private static $TRUE_VALUES = array("on", "true", "t", "yes"); ... public function booleanValue($s) { if (is_bool($s)) { return $s; // it's already boolean (not a string) } // otherwise assume it's something like "true" or "t" $trimmed = strtolower(trim($s)); return in_array($trimmed, self::$TRUE_VALUES); } Hans

Unnamed Person

22 years ago
"Robert Janeczek" <rashid@ds.pg.gda.pl> writes:
> is there any way that string 'false' (and its variations with capital > letters) could be interpeted as boolean of value false? i have xml > configuration file that has some switches (true/false) in it. when i use > this values in functions that require booleans i get true every time (as > string isn`t empty) :/ i hoped that at least with explicit type cast i could > go around this problem, but i didn`t help. > how about adding this special case to conversion rules? creating if`s around > such code doesn`t make me happy at all :]
What do eval('false') and eval('true') return? You can probably just do eval(xmlText) to get the results you're looking for. (Just beware that the xmlText actually contains one of the values "true" or "false", and not some malicious php code.) Derrell

Nick Loeve

22 years ago
Derrell Lipman wrote:
> "Robert Janeczek" <rashid@ds.pg.gda.pl> writes: > > >>is there any way that string 'false' (and its variations with capital >>letters) could be interpeted as boolean of value false? i have xml >>configuration file that has some switches (true/false) in it. when i use >>this values in functions that require booleans i get true every time (as >>string isn`t empty) :/ i hoped that at least with explicit type cast i could >>go around this problem, but i didn`t help. >>how about adding this special case to conversion rules? creating if`s around >>such code doesn`t make me happy at all :] > > > What do eval('false') and eval('true') return? You can probably just do > eval(xmlText) to get the results you're looking for. (Just beware that the > xmlText actually contains one of the values "true" or "false", and not some > malicious php code.) > > Derrell
or use integers in the xml file and force type casting (integer)$xmlText