PHP函数“如果指定了第二个参数”

时间:2017-01-15 01:51:34

标签: php function

我有一个简单的功能,可以有条件地将单位转换为英尺或英寸进行显示。我还想使用它有条件地将实际文本ftin添加到最后。我不能在每种情况下都添加该文字,因为当你想要的是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或者两者都没有时才有意义

1 个答案:

答案 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,并相应地处理函数内的这些变量。