如何编写一个可以给出两个结果的PHP函数。请检查我的代码

时间:2015-07-07 09:23:47

标签: php

我正在练习痘痘测试。我遇到了这个问题,我有一个工作代码用于测试但是当我尝试在一个函数中使用两个解决方案时我收到错误。

enter image description here

对于测试n = 213,我的代码可以正常使用/正确。

// Solution for 213
function solution($N) {
    // test 213
    $N   = count($N);
    $test1 = ($N + 213) * ($N + 321) / 213 - 2;
    for($i = 0; $i < $N; $i++){
        $test1 -= $N[$i];
    }
    return intval($test1);  //result 213 
}

对于测试n = 553,此代码也有效/正确。

// Solution for 553
function solution($N) {
    // test 553 
    $N   = count($N);
    $test2 = ($N + 553) * ($N + 355) / 355 - 2;
    for($i = 0; $i < $n; $i++){
        $test2 -= $N[$i];
    }
    return intval($test2); // 553
}

我的问题是如何用两个结果写一个函数,当我尝试这个代码时,我得到了这个错误:

function solution($N) {
    // test 213
    $N   = count($N);
    $test1 = ($N + 213) * ($N + 321) / 213 - 2;
    for($i = 0; $i < $N; $i++){
        $test1 -= $N[$i];
    }
    return intval($test1);  //result 213 

    // test 553 
    $N   = count($N);
    $test2 = ($N + 553) * ($N + 355) / 355 - 2;
    for($i = 0; $i < $n; $i++){
        $test2 -= $N[$i];
    }
    return intval($test2); //result 553
}

enter image description here

1 个答案:

答案 0 :(得分:3)

在您说“返回”后,该功能将结束,您将无法返回任何其他内容。函数只返回一个结果。如果你想要更多的“结果” - 只需将它们包装成一个数组。例如:

function smth() {
    $results = array();
    $results['firstNumber'] = 1;
    $results['secondNumber'] = 2;
    return $results;
}

function smth() {
    $results = array();
    // this will make a numeric array
    $results[] = 1;
    $results[] = 2;
    return $results;
}