我在一个图书馆找到了这个,并想知道它是否值得一试?为什么引用真假?
$return = true;
if(/* Something went success */)
{
$return &= true;
}
else
{
$return &= false;
}
return $return;
答案 0 :(得分:4)
在给定的例子中,使用二进制文件并没有意义。
在更广泛的情况下,这确实有意义。
假设您有多个可能导致真或假的步骤,这些步骤形成某种过程:
$return = true;
$return = step1();
$return = step2();
return $return;
step1
或step2
失败时,该过程失败。
当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;