在Javascript中,我们可以方便地获得||运营商提供的各种选项之一.例如:
console.log('a' || '' || 0); // Yields 'a'
console.log(0 || 'b' || 'a'); // Yields 'b'
Run Code Online (Sandbox Code Playgroud)
上面的结果很容易分配给这样的变量:
let test = 'a' || '' || 0;
但是在PHP中,当我尝试这个时:
$test = 'a' || '' || 0;给了我一个$test = 1与1意义true.在PHP中有没有办法获得导致它产生的表达式的字面值true?
您可以使用Elvis 运算符来实现此目的,例如
$test = 'a' ?: '' ?: 0;
var_dump($test);
> string(1) "a"
$test2 = 0 ?: 'b' ?: 'a';
var_dump($test2);
> string(1) "b"
Run Code Online (Sandbox Code Playgroud)
还有空合并运算符 (??),但仅当第一个值为空时它才采用第二个值,因此例如0 ?? 'a'将采用 0,因为它不为空。
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |