PHP variable equals true no matter what the value, even 0
- by kaigoh
This is the var_dump:
object(stdClass)#27 (8) {
["SETTING_ID"]=> string(2) "25"
["SETTING_SOURCE"]=> string(2) "XV"
["SETTING_FLEET"]=> string(3) "313"
["SETTING_EXAM"]=> string(1) "A"
["SETTING_HIDE"]=> string(1) "0"
["SETTING_THRESHOLD"]=> string(1) "0"
["SETTING_COUNT"]=> string(8) "POSITIVE"
["SETTING_USAGE"]=> string(7) "MILEAGE"
}
The variable I am testing is SETTING_HIDE. This is being pulled from MySQL using the Code igniter framework. I don't know if it is just me being thick after a rather long day at work or what, but no matter what value the variable holds, any if statement made against it returns true, even when typecast as a boolean or a direct string comparison, ie. == "0" or == "1".
Anyone with a fresh pair of eyes care to make me feel silly!?! :)
Just to clarify:
Have tried the following:
if($examSetting->SETTING_HIDE == "1") { $showOnABC = "checked=\"checked\""; }
if((bool)$examSetting->SETTING_HIDE) { $showOnABC = "checked=\"checked\""; }
if($examSetting->SETTING_COUNT == "POSITIVE") further on in my code works perfectly.