It took me a while to figure this out, so even though this is near-obsolete, maybe it will be useful to someone else.
I have a dBase file that contains a boolean value. I created a new row in the file with the boolean value at 0, and that worked without issues.
But then I tried to set that value to 1, and it did not work. I tried 1, "1", true - all without success.
Turns out that you need to use "Y" to set a boolean value to 1.
When you load the row later and output it using var_dump, the value will show as integer with the value 1.