返回早期概念如何在PHP中有用

时间:2016-08-12 14:26:13

标签: php

我已通过以下链接中的最佳做法 https://pear.php.net/manual/en/standards.bestpractices.php。 我还不太清楚PHP中的返回早期概念。它是否用于减少PHP函数中的其他条件?我们什么时候应该理想地使用这个概念,为什么它有用?

3 个答案:

答案 0 :(得分:2)

这是一个非常粗略和过于简单的测试,但在PHP 7.0.2上test_func1()test_func2()快33%:

<?php
function test_func1()
{
    if(1===1){}
    if(1===1){}
    if(1===1){}
    if(1===1){}
    if(1===1){return;}
    if(1===1){}
    if(1===1){}
    if(1===1){}
    if(1===1){}
    if(1===1){}
}

function test_func2()
{
    if(1===1){}
    if(1===1){}
    if(1===1){}
    if(1===1){}
    if(1===1){}
    if(1===1){}
    if(1===1){}
    if(1===1){}
    if(1===1){}
    if(1===1){}
    return;
}

$iterations = 1000000;

$start = microtime(true);
for($i=0; $i<$iterations; ++$i)
{
    test_func1();
}
echo (microtime(true)-$start)."\n\n";

$start = microtime(true);
for($i=0; $i<$iterations; ++$i)
{
    test_func2();
}
echo (microtime(true)-$start);

http://sandbox.onlinephpfunctions.com/

处自行尝试

就像我说的那样,过于简单了。想象一下,该函数使用多个数据库调用来比较某些值。如果第一个值的比较使得后续比较的调用无效,那么就没有理由继续进行那些比较。

答案 1 :(得分:1)

简短的例子,为什么它可以有用

//some demo function
function connect_to_ftp($host, $user, $pass){
    //some check if the host is a valid host, just for demonstration
    if (not_a_valid_host($host)) return false;
    //if the host is valid, continue executing, no else required
    make_ftp_connection($host, $user, $pass);
    return true;
}

答案 2 :(得分:0)

所有关于CLEAN CODE和可读性

function bad($x,$y,$z){
 if($x){
   if($y){
       if($z){
           /*code work*/
       } else {
           return null;
       }
   } else {
       return null;
   }
  } else {
    return null;
  }
}

function better(){
   if(!$x){
      return null;
   } 
   if(!$y){
       return null;
   }
   if(!$z){
       return null;
   }
   /*code work*/
}

function bestversioninthiscase(){
  if(!$x || !$y || !$z){
      return null;
  } 
  /*code work*/
}

..而不是关于代码的哪一部分被执行。

这里更具可读性:

if($x){
  #code
}

if($x)
{
  #code
}

讨论这个主题很有趣:)