这个PHP代码有一些价值吗?

时间:2014-01-13 07:36:11

标签: php reference

我在一个图书馆找到了这个,并想知道它是否值得一试?为什么引用真假?

$return = true;

if(/* Something went success */)
{
    $return &= true;
}
else
{
    $return &= false;
}

return $return;

2 个答案:

答案 0 :(得分:4)

在给定的例子中,使用二进制文件并没有意义。

在更广泛的情况下,这确实有意义。

假设您有多个可能导致真或假的步骤,这些步骤形成某种过程:

$return = true;

$return = step1();
$return = step2();
return $return;

step1step2失败时,该过程失败。

step1返回false时,您的流程失败但仍然执行step2 但是,如果step2()返回true,那么即使前一步失败,整个过程也会突然返回true。

通过二进制和结果,您可以确保一旦失败$return将保持失败

true & true = true
true & false = false
false & false = false

e.g。

$return = true;

$return &= step1();
$return &= step2();
return $return;

在一系列验证器应用于数据的情况下,这种情况并不少见,如果一个验证器未能提前退出,则需要这样做。可能用于指示验证器失败等等。

答案 1 :(得分:0)

 $return &= true;

相同
 $return = $return & true;

true & true   // 1
false & true  // 0
true & false  // 0
false & false //0

代码实际上是想做类似的事情:

如果Something went success,如果true为真,则返回$return,如果false$return则返回false

否则,无论$return是否,都返回false

但它返回0/1而不是true/false

如果您想要实际返回true/false,则必须执行以下操作:

if($condition_of_something)
{
    $return = $return && true;
}
else
{
    $return = false;
}

return $return;

您可以将代码简化为:

return $return && $condition_of_something;