0
function query($query, $cacheType, $cacheDuration, $responseType)

$query = Query to be executed.
$cacheType = Memcached etc.
$cacheDuration = Duration of cache.
$responseType = MySQL response type. (e.g array, json etc)
  1. 我不想使用缓存,但希望是 JSON。我怎样才能传递这两个参数?

  2. 如果我将 cacheType 设置为“Memcached”,如何确保将 $cacheDuration 设置为有效整数?

  3. 如果我在查询函数中添加第五个参数(例如 $fifth),如何在不破坏整个网站使用的调用的情况下添加它?他们仍然提供 4 个参数,但查询更新为 5 个参数。

我主要在寻找“良好实践”的响应,否则我知道将 NULL 值传递给参数。

4

3 回答 3

2
$paramsArray = array();
$paramsArray['query'] = 'Query to be executed.';
$paramsArray['cacheType'] = 'Memcached etc.';
$paramsArray['cacheDuration'] = 'Duration of cache.';
$paramsArray['responseType'] = 'MySQL response type. (e.g array, json etc)';

echo query($paramsArray);

function query($paramsArray = array()) {

  $query = $paramsArray['query'];
  $cacheType = $paramsArray['cacheType'];
  $cacheDuration = $paramsArray['cacheDuration'];
  $responseType = $paramsArray['responseType'];

  // Your query operations with $query, $cacheType, $cacheDuration, $responseType
}
于 2013-02-27T04:44:05.370 回答
0

通过设置默认值使用这样的第五个参数,它不会破坏现有的函数调用。

function query($query, $cacheType, $cacheDuration, $responseType, $fifth = NULL)

您也可以使用 4 个参数调用此函数

echo query($query, $cacheType, $cacheDuration, $responseType);
于 2013-02-27T04:34:23.140 回答
0

我不想使用缓存,但希望是 JSON。我怎样才能传递这两个参数?

不明白。

如果我将 cacheType 设置为“Memcached”,如何确保将 $cacheDuration 设置为有效整数?

我可能也不明白这一点,但您可以使用 is_int() 函数进行验证。

如果我在查询函数中添加第五个参数(例如 $fifth),如何在不破坏整个网站使用的调用的情况下添加它?他们仍然提供 4 个参数,但查询更新为 5 个参数。我主要在寻找“良好实践”的响应,否则我知道将 NULL 值传递给参数。

我只是想告诉你你可以重载这个函数,但我刚刚发现它在 php 中不受支持(PHP 函数重载),所以你最好添加一个默认值为的第五个参数,null然后做什么时候你想要什么$fifth != null

于 2013-02-27T04:39:55.917 回答