Home » Php » php – Setting default values (conditional assignment)

php – Setting default values (conditional assignment)

Posted by: admin April 23, 2020 Leave a comment

Questions:

In Ruby you can easily set a default value for a variable

x ||= "default"

The above statement will set the value of x to “default” if x is nil or false

Is there a similar shortcut in PHP or do I have to use the longer form:

$x = (isset($x))? $x : "default";

Are there any easier ways to handle this in PHP?

How to&Answers:

As of PHP 5.3 you can use the ternary operator while omitting the middle argument:

$x = $x ?: 'default';

Answer:

isset($x) or $x = 'default';

Answer:

As of PHP 7.0, you can also use the null coalesce operator

// PHP version < 7.0, using a standard ternary
$x = (isset($_GET['y'])) ? $_GET['y'] : 'not set';
// PHP version >= 7.0
$x = $_GET['y'] ?? 'not set';

Answer:

I wrap it in a function:

function default($value, $default) {
    return $value ? $value : $default;
}
// then use it like:
$x=default($x, 'default');

Some people may not like it, but it keeps your code cleaner if you’re doing a crazy function call.

Answer:

I think your longer form is already the shortcut for php… and I wouldn’t use it, because it is not good to read

Some notice:
In the symfony framework most of the “get”-Methods have a second parameter to define a default value…