设置默认值(条件分配)

eju*_*ker 30 php ruby logical-operators

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

x ||= "default"
Run Code Online (Sandbox Code Playgroud)

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

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

$x = (isset($x))? $x : "default";
Run Code Online (Sandbox Code Playgroud)

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

igo*_*orw 41

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

$x = $x ?: 'default';
Run Code Online (Sandbox Code Playgroud)


Mic*_*cki 8

isset($x) or $x = 'default';
Run Code Online (Sandbox Code Playgroud)

  • 只要我们不认为$ x的错误值为'set',那就行了. (4认同)

Mac*_*ity 5

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

// 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;
Run Code Online (Sandbox Code Playgroud)


joc*_*hil 0

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

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