在php函数中将几个数组作为可选参数的最佳方法

时间:2016-01-08 17:21:16

标签: php mysql pdo

我有一个具有以下标题的函数(一个简单的pdo包装类的一部分):

function select($table_name, $fields = [], $where = [])

当我有 where 子句时会变得很尴尬,但我想使用字段的默认值,就像在这样的调用中一样:

  $where = array(
    'Username'    =>  $username,
    'Password'    =>  $encrypted_password
  );

  // Select all fields from User with the where clause above
  $STMT = $dbpdo->select("User", [], $where);`

这只是一个例子来说明这个问题。在php中使用这种类型的构造最优雅的方法是什么?理想情况下,我想使用如下调用:

$dbpdo->select("User", $where);

$dbpdo->select("User", $fields, $where);

1 个答案:

答案 0 :(得分:0)

可以使用func_get_args()func_num_args()以不同的方式处理对你的函数的两参数和三参数调用,但我不建议这样做,因为它会使你的功能可能让其他人感到困惑。

我个人认为$dbpdo->select("User", [], $where);很好。

您可能还会考虑交换$ where和$ fields参数,如果$ fields更有可能具有默认值/空值。