我有一个简单的功能,可以有条件地将单位转换为英尺或英寸进行显示。我还想使用它有条件地将实际文本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)
和总是必须指定两个参数(当我在寻找数字输出时使后者为0,当我在寻找文本时使后者为1)。但是有更优雅的东西吗?
(是的,我知道只有两个数字都<50或者两者都没有时才有意义
答案 0 :(得分:1)
利用功能的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
,并相应地处理函数内的这些变量。