trim() function : How to avoid empty string return if the argument is unset/null variable?

18.1k views Asked by At

I have a problem when using the trim() function in php.

//Suppose the input variable is null.
$input = NULL;
echo (trim($input));

As shown above, the output of the codes is empty string if the input argument if NULL. Is there any way to avoid this? It seems the trim will return empty string by default if the input is unset or NULL value.

This give me a hard time to use trim as following.

array_map('trim', $array);

I am wondering if there's any way I can accomplish the same result instead of looping through the array. I also noticed that the trim function has second parameter, by passing the second parameter, you can avoid some charlist. but it seems not work for me.

Any ideas? Thanks.

2

There are 2 answers

1
Jonah On BEST ANSWER

Create a proxy function to make sure it's a string before running trim() on it.

function trimIfString($value) {
    return is_string($value) ? trim($value) : $value;
}

And then of course pass it to array_map() instead.

array_map('trimIfString', $array);
3
Mikel On

Why not just:

$input = !empty($input) ? trim($input) : $input;