Php 哪种方法返回true或false更好?

Php 哪种方法返回true或false更好?,php,performance,optimization,Php,Performance,Optimization,也许我的问题并不重要,但每当我在我的项目上工作时,它就会出现在我的脑海中,所以我想知道哪一个方法在性能方面更好,我也想知道是否还有其他副作用 代码1: if ($result === TRUE){ // some statements return TRUE; }else{ // some statements return FALSE; } if ($result === FALSE){ // some statements return F

也许我的问题并不重要,但每当我在我的项目上工作时,它就会出现在我的脑海中,所以我想知道哪一个方法在性能方面更好,我也想知道是否还有其他副作用

代码1:

if ($result === TRUE){
    // some statements 
    return TRUE;
}else{
    // some statements
    return FALSE;
}
if ($result === FALSE){
    // some statements
    return FALSE;
}

// some statements
return TRUE;
代码2:

if ($result === TRUE){
    // some statements 
    return TRUE;
}else{
    // some statements
    return FALSE;
}
if ($result === FALSE){
    // some statements
    return FALSE;
}

// some statements
return TRUE;

请注意当条件为真或假时,我必须处理一些代码,这就是为什么我在注释中指出“//一些语句”返回$result==true?true:false

两者的性能相同。 选择一个更容易阅读的,第一个可以让你得到一个V型,比如

if($result) {

} else {
  for() {
    if($result2) {
      //code
    }
  }
}

所以我更喜欢第二个,它对于高级程序员来说更容易阅读,但是对于初学者来说有点困惑

我总是遵循以下模式:

// declare result as true by default
$result = true;

// some logic that will decide on the status of result

if (!$result) // this is same as $result === false
{
    return $result = false;
}

return $result;
优点:


跳过Else块。因此代码更少,但如果您需要else块,则这不起作用。

在我看来,第二个更干净,因为它减少了嵌套。我不认为这真的有什么区别,但我会选择第一个,因为它使代码更具可读性。代码2:在某些情况下有任何副作用吗?没有区别,若结果为真,则检查并返回,若结果为假,则检查并返回。我不知道else{}的代价。我认为#2更快,因为编译器不检查else块。正如我在编译器和计算机体系结构中所记得的,第二个问题是编译器更喜欢在汇编中编写,因为它需要更少的指令集。但是我不能证明:)OP想要执行中间的一些语句(注意“OPs代码中的一些语句注释”)。另外,如果
$result
是一个布尔值,您也可以直接
返回$result
。@alexisters执行
!!$result
的目的是什么?双重否定很难读取,而且
返回$result
的时间更短。