设置默认值(条件分配)

在Ruby中,您可以轻松地为变量设置默认值

x ||= "default" 

如果x为nil或false,则上述语句将x的值设置为“default”

在PHP中是否有类似的快捷方式,或者我必须使用更长的forms:

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

有没有更简单的方法来处理这个PHP?

从PHP 5.3开始,您可以使用三元运算符,而省略中间参数:

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

从PHP 7.0开始,您还可以使用null coalescence运算符

 // 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; 

我把它包装在一个函数中:

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

有些人可能不喜欢它,但如果你正在做一个疯狂的函数调用,它可以让你的代码更清晰。

我认为你的较长forms已经是php的快捷方式……我不会使用它,因为它不好读

一些注意事项:在symfony框架中,大多数“get”-Methods都有第二个参数来定义默认值…