我已通过以下链接中的最佳做法 https://pear.php.net/manual/en/standards.bestpractices.php。 我还不太清楚PHP中的返回早期概念。它是否用于减少PHP函数中的其他条件?我们什么时候应该理想地使用这个概念,为什么它有用?
答案 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
}
讨论这个主题很有趣:)