PHP的逻辑运算符是否像JavaScript一样工作?

pyo*_*yon 7 php operator-precedence logical-operators

我最喜欢JavaScript的一个原因是逻辑运算符非常强大:

  • && 可以用来安全地提取对象字段的值,如果对象或字段尚未初始化,则返回null

    // returns null if param, param.object or param.object.field
    // have not been set
    field = param && param.object && param.object.field;
    
    Run Code Online (Sandbox Code Playgroud)
  • || 可用于设置默认值:

    // set param to its default value
    param = param || defaultValue;
    
    Run Code Online (Sandbox Code Playgroud)

PHP是否也允许使用逻辑运算符?

Mat*_*hew 14

PHP返回truefalse.但你可以用以下方式模拟JavaScript r = a || b || c:

$r = $a ?: $b ?: $c;
Run Code Online (Sandbox Code Playgroud)

关于'ands',类似于:

$r = ($a && $a->foo) ? $a->foo->bar : null;
Run Code Online (Sandbox Code Playgroud)

  • 我准备发布同样的事情.请注意,此功能存在于PHP 5.3中. (2认同)

Pas*_*TIN 8

PHP逻辑运算符不会返回任何一方的值:它们总是会给你一个布尔值.

例如,做:

$result = $a && $b;
Run Code Online (Sandbox Code Playgroud)

将始终$result包含一个布尔值:truefalse- 并且永远$a不会$b.