php最优雅的函数调用返回数组

时间:2015-10-19 11:00:17

标签: php function

我在两个类似的解决方案之间询问您的偏好。

第一种方式:

public function test($myvar) {

    switch ($myvar) {   
        case 'test1': return [
                          'value' => 'Value of test1',
                          'short' => 'Val 1'
                      ];
        break;
     }
}

$this->test('test1')['short']  // Val 1

第二种方式:

public function test($myvar, $key) {

    switch ($myvar) {   
        case 'test1': $array = [
                          'value' => 'Value of test1',
                          'short' => 'Val 1'
                      ];
    }

    return $array[$key];
}

$this->test('test1', 'short')  // Val 1

即使两个函数都返回相同的值,对你们来说最优雅和可读的方式是什么?

1 个答案:

答案 0 :(得分:2)

对我来说,它是第二个很少修改的。 看看:

public function test($myvar, $key = null) {

    switch ($myvar) {   
        case 'test1': $array = [
                          'value' => 'Value of test1',
                          'short' => 'Val 1'
                      ];
    }

    if(!empty($key))
        return $array[$key];
    else
        return $array;
}

使用:

$this->test('test1', 'short')  // Val 1
$this->test('test1')['short']  // Val 1
$this->test('test1')['value']  // Value of test1

通过这种方式,您可以将这两种方法与单一功能结合使用。 请记住,函数需要尽可能通用,以减少代码和执行更多操作。 "代码不是资产,它是一种责任。你写的越多,你以后需要维护的越多。" :)