2016-06-22 32 views
2

我在我的课上有这个功能。默认情况下,它应该回显值,但也可以通过使用可选参数将值返回给变量。有没有什么办法让这个“如果”更短,在一行(因为我有很多的功能,所以我可以保存很多行)。最简单的方法返回/回声功能(速记IF)

我尝试过三元运算符,但是我不知道我是否可以用这个方法来实现它。

什么是最好的,正确的,美丽的方式来做这个返回/回声功能?

+1

线不贵,程序员时间 – Steve

+1

'$返回返回$值:$回声value' – Thamilan

+4

@Steve这就是为什么你在句末省略了点? ;) – Rizier123

回答

4

线条并不昂贵,因此减少代码行并不是特别有用的目标,特别是如果它降低了可读性。

但是,您可以删除else子句,因为返回将返回!

public function test($return = false) 
{ 
    $value = 'demo123'; 

    if ($return) { 
     return $value; // optional 
    } 
    echo $value; // default 
} 
+0

我忘了退出函数....谢谢! – norr

1

这是我会做你的情况。在每个函数的末尾只有1行代码。

public function test($return = false) 
{ 
    $value = 'demo123'; 

    return returnMe($return, $value); 
} 

private function returnMe($return = false, $value){ 
    if ($return) { 
     return $value; 
    }else{ 
     echo $value; 
     return false; 
    } 
} 
2

如果你这样做,因为代码复制的,那么我会通过将评估$返回另一个函数传递的所有结果。

private function returnOrEcho($value, $return){ 
    if($return) return $value; 
    echo $value; 
} 

public function test($return = false){ 
    $value = 'demo123'; 
    return $this->returnOrEcho($value, $return); 
} 

public function test2($return = false){ 
    $value = 'demo456'; 
    return $this->returnOrEcho($value, $return); 
}