如果您真的想知道是否设置了WordPress查询变量,您需要直接检查它。
所有集合查询变量都存储在WP\\U查询类的全局可访问数组中。
它有一个绑定到全局$wp_query
变量考虑到这一点,可以创建qv_isset()
精确工作的功能:
function qv_isset($var_name) {
$array = $GLOBALS[\'wp_query\']->query_vars;
return array_key_exists($var_name, $array);
}
让这件事如此简单的是
array_key_exists() 返回true或false。
通常,如果要测试任何PHP变量是否已设置,可以使用isset()
. 但它有一个缺点:如果变量NULL
, 它会说它没有设定,即使设定了。与所写内容相当empty() 这里也可以说\'\'
(空字符串),NULL
, 0
等
无论如何,我们不需要依赖该函数来检查是否设置了queryvar,因为我们可以在这里使用array\\u key\\u exists()。
现在查看您的代码:
function qv_get($var_name, $default = null) {
return qv_isset($var_name) ? get_query_var($var_name) : $default;
}
mcs_textbook_chapter($dialect, qv_get(\'cls\'), qv_get(\'ch\'));
或者换言之:如果您的函数已经有(那么多)可选参数,那么看看如何最好地为它提供数据。未设置的变量为
NULL
(就像上面用isset()所说的那样),因此将它们作为未设置的可选参数传递也是很有用的。