Skip to content

Commit 41f88b4

Browse files
committed
fix(cast): correct boolify function to handle string conversions properly
- Fix boolify returning false instead of default for non-boolean strings - Add support for '1' and '0' string conversions - Strings 'true'/'1' convert to true - Strings 'false'/'0' convert to false - Other strings fallback to default value
1 parent 9d47088 commit 41f88b4

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

src/_/cast.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,12 @@ function floatify(mixed $value, float $default = 0.0): float
9696
if (! function_exists(__NAMESPACE__ . '\boolify')) {
9797
function boolify(mixed $value, bool $default = false): bool
9898
{
99-
return is_bool($value)
100-
? $value
101-
: $default;
99+
return match (true) {
100+
is_bool($value) => $value,
101+
is_numeric($value) => (bool) $value,
102+
is_string($value) && ($value === 'true' || $value === '1') => true,
103+
is_string($value) && ($value === 'false' || $value === '1') => false,
104+
default => $default,
105+
};
102106
}
103107
}

0 commit comments

Comments
 (0)