A plain PHP class to convert empty data of any type to null
PHP ^8.0
is required to use this class.
composer require michael-rubel/nullify
use MichaelRubel\Nullify\Nullify;
Nullify::the($value);
$value = null;
Nullify::the($value); // null
$value = '';
Nullify::the($value); // null
$value = [];
Nullify::the($value); // null
$value = (object) [];
Nullify::the($value); // null
$value = new \stdClass;
Nullify::the($value); // null
⚡ Check nested elements:
$values = new Collection([
'valid' => true,
'empty_array' => [],
'empty_string' => '',
'collection' => new Collection([
'invalid' => new \stdClass,
])
]);
Nullify::the($values);
// Illuminate\Support\Collection^ {#459
// #items: array:4 [
// "valid" => true
// "empty_array" => null
// "empty_string" => null
// "collection" => Illuminate\Support\Collection^ {#461
// #items: array:1 [
// "invalid" => null
// ]
// #escapeWhenCastingToString: false
// }
// ]
// #escapeWhenCastingToString: false
// }
📚 If you use Laravel Collections, you can make a macro:
Collection::macro('nullify', function () {
return $this->map(fn ($value) => Nullify::the($value));
});
collect(['', [], (object) [], new \stdClass, '✔'])
->nullify()
->toArray(); // [0 => null, 1 => null, 2 => null, 3 => null, 4 => '✔']
composer test
The MIT License (MIT). Please see License File for more information.