我有一个foreach
声明如下所示:传递函数PARAMS
foreach ($term['terms'] as $term_single) {
$term_object = get_term_by('name', $term_single, $tax_name);
switch ($term['tax_name']) {
case has_action("basey_taxonomy_search_teaser_{$tax_name}") :
do_action("basey_taxonomy_search_teaser_{$tax_name}",$term_object, $term_single);
break;
default:
echo basey_taxonomy_search_teaser_default($term_object,$term_single);
break;
}
}
所以,在此,我有两个$term_object
和$term_single
变量传递给basey_taxonomy_search_teasr_default()
功能。这里奇怪的是,如果我做的其他位置如下:
function basey_taxonomy_search_teaser_default($term_object,$term_single) {
ob_start();
do_action('basey_taxonomy_teaser_before');
echo '<article id="tax-' . $term_object->term_id . '" class="' . $term_object->taxonomy . '">';
echo '<a href="';
echo get_term_link($term_object);
echo '">';
echo $term_single;
echo '</a>';
echo '</article>';
do_action('basey_taxonomy_teaser_after');
$display = apply_filters('basey_taxonomy_teaser_default_view', ob_get_clean());
return $display;
}
只是正常工作在我的本地,但在网上的服务器,它与错误回来$term_object
和$term_single
为未定义。如果我希望函数定义使用初始调用的值,是否有更好的方法呢?再次,为什么它会在本地主机(MAMP)上工作,但在服务器上,它会出错。除了它是一个php.ini问题(我认为这是更基础的编程习惯),看看我做错了什么,以及我的假设是否通过函数传递值。谢谢!
更新
var_dump($term_object)
$term_object = get_term_by('name', $term_single, $tax_name);
之后:
本地主机给我:
object(stdClass)#181 (10) { ["term_id"]=> string(3) "127" ["name"]=> string(4) "Base" ["slug"]=> string(4) "base" ["term_group"]=> string(1) "0" ["term_order"]=> string(1) "0" ["term_taxonomy_id"]=> string(3) "130" ["taxonomy"]=> string(18) "profile_categories" ["description"]=> string(4) "Base" ["parent"]=> string(1) "0" ["count"]=> string(1) "2" }
活的服务器给我:
bool(false)
呸,很令人沮丧。
在函数调用之前的活动服务器中,var_dump($ term_object)并将结果粘贴到您的问题中? – GBD