Php 哪种方法返回true或false更好?
也许我的问题并不重要,但每当我在我的项目上工作时,它就会出现在我的脑海中,所以我想知道哪一个方法在性能方面更好,我也想知道是否还有其他副作用 代码1: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
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
的时间更短。