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)
我不想使用缓存,但希望是JSON。我怎样才能传递这两个参数?
如果我将cacheType设置为“Memcached”,我如何确保$ cacheDuration设置为有效整数?
如果我向查询功能添加第五个参数(例如$ five),如何在不破坏整个网站使用的调用的情况下添加它?他们仍然提供4个参数,但查询更新为5个参数。
我主要是在寻找“良好实践”的反应,否则我知道将NULL值传递给params。
答案 0 :(得分: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
}
答案 1 :(得分:0)
通过设置默认值来使用这样的第五个参数,它不会破坏现有的函数调用。
function query($query, $cacheType, $cacheDuration, $responseType, $fifth = NULL)
你也可以用4参数调用这个函数
echo query($query, $cacheType, $cacheDuration, $responseType);
答案 2 :(得分:0)
我不想使用缓存,但希望是JSON。我怎么能通过那些 2参数?
不明白。
如果我将cacheType设置为“Memcached”,我该如何确保$ cacheDuration 设置为有效整数?
我可能也不理解那个,但您可以使用is_int()函数进行验证。
如果我向查询功能添加第五个参数(例如$ five),我该怎么办? 添加它而不破坏整个网站使用的调用?他们仍然 给出4个参数,但查询更新为5个参数。我在看 对于“良好实践”的反应大多数,否则我知道传递NULL 值得参考。
我只是想告诉你,你可以重载这个函数,但我发现它在php(PHP function overloading)中不支持,所以你可能会很好地添加一个带有默认值的第五个参数值null
并在$fifth != null