我在我的课程中具有此功能。默认值它应该回声值,但也通过使用可选参数返回值。
public function test($return = false) {
$value = 'demo123';
if ($return) {
return $value; // optional
} else {
echo $value; // default
}
}
有什么方法可以使此"如果"短,一行(因为我对此有很多功能,所以我可以节省很多行)。
我尝试了三元操作员,但是我不知道我是否可以在这种情况下使用它们。
最好的,正确的,美容的方式是返回/回声函数?
线并不昂贵,因此减少代码行不是一个特别有用的目标,尤其是在降低可读性的情况下。
但是,您可以删除其他子句,因为返回将返回!
public function test($return = false)
{
$value = 'demo123';
if ($return) {
return $value; // optional
}
echo $value; // default
}
如果您是由于代码复制而这样做的,那么我将通过另一个可以评估$ return的功能传递所有结果。
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);
}
这是我在您的情况下会做的。在每个功能的末尾,它将仅是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;
}
}