我有一个简单的功能,有条件地将单位转换为英尺或英寸以供展示。我还想使用它有条件地将实际文本ft或in添加到末尾。我不能在每一种情况下都添加这个文本,因为当您想要的是36 in x 24 in x 10 in时,我会以36x24x10 in结束。
所以基本上我是想这么做:
function ex($x, $y) {
if only $x is specified {
if ($x < 50) {
return $x/25.4
}
else {
return $x/304.8
}
}
elseif $x and $y are both specified {
if ($x < 50) {
return ' in';
}
else {
return ' ft';
}
}
}
echo ex($NumberToConvert).'x'.ex($OtherNumberToConvert).example($NumberIWantToConvert,1);但这当然会导致“缺失论点2”的警告。最明显的问题是使用if ($y > 0),并且总是必须指定两个参数(在寻找数字输出时使用后一个参数,在查找文本时使用1)。但还有什么更优雅的吗?
(是的,我知道只有当这两个数字都小于50或两者都不存在时才有意义)
发布于 2017-01-15 01:58:13
利用函数的default argument values。因此,您的ex函数应该如下所示:
function ex($x = null, $y = null) {
if($x != null && $y == null){
if ($x < 50) {
return $x/25.4
}else{
return $x/304.8
}
}elseif($x != null && $y != null){
if ($x < 50) {
return ' in';
}else{
return ' ft';
}
}
}将函数中的null作为$x和$y的默认参数,并相应地在函数中处理这些变量。
https://stackoverflow.com/questions/41657021
复制相似问题