【问题标题】:Shorthand expression for an if ( $a == $b and $a == $c ) statement in PHPPHP 中 if ( $a == $b 和 $a == $c ) 语句的简写表达式
【发布时间】:2015-07-29 11:54:16
【问题描述】:

最近,我发布了a question about if ( $a == $b or $a == $c ) expression。现在我想知道这段代码是否还有简写:

if ( $a == $b && $a == $c ) { /*statement*/ }

该代码可以像 "如果 $a 等于 $b 并且 $a 等于 $c" 那样阅读。

是否有更短的代码可以这样阅读:

如果 ( $a 等于 ( $b and $c ) ) { /*statement*/ }

【问题讨论】:

    标签: php if-statement operators expression


    【解决方案1】:

    因为您正在测试 $a 是否等于 $b 并且 $c 这在逻辑上导致 $b 等于 $c,我不知道这会缩短多少,但是如果您想快速测试是否所有预设值相同,您可以创建它们的数组并调用array_unique。如果结果数组的长度为 1,那么它们都彼此相等。我想如果你有大量的值,这只会更容易,因为语法可能会掩盖你的意图。

    【讨论】:

    • 如果您用于比较更多值或仅使用 ($a==$b && $a==$c) 比较少数值以获得性能,则接受。要比较一个共同的开始,你最好check my answer..
    【解决方案2】:

    我在实验中找到了答案,而我的问题尚未发布:

    if ( $a == ( $b & $c ) ) { /*statement*/ }
    

    我只是想分享它.. (不,我正在开发一个 WordPress 主题,这是无意的!)

    【讨论】:

    • 你的答案确实是假的,例如:var_dump('cat' == ('cat' & 'catterpillar')); 返回true,因为这两个词有一个共同的开头。
    • @CasimiretHippolyte 重新测试后,( 'a' == ( 'ab' & 'ac' ) ) 返回false,但( 'a' == ( 'ab' & 'a' ) ) 返回true。您能否为此提供更好的解决方案?
    • 没有更好的解决方案,Jason Sperske 方法是替代var_dump((array)'cat' == array_unique('cat', 'cat')) 对更多项目有用,但对于少数项目,测试$a==$b && $b==$c 是最高效的方法。
    • 'cat' == ('cat' == 'catterpillar' );
    猜你喜欢
    • 2015-07-28
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 2018-01-29
    • 1970-01-01
    • 2014-02-16
    • 1970-01-01
    相关资源
    最近更新 更多