2012-10-18 64 views
0

我有一個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) 

呸,很令人沮喪。

+0

在函數調用之前的活動服務器中,var_dump($ term_object)並將結果粘貼到您的問題中? – GBD

回答

0

我猜你正在碰到的數據庫是不同的,而$ term_single是空的,導致一個空的$ term_object,並且當你調用該函數並嘗試使用那些你正在死亡的對象時。

0

實時服務器上不存在您要搜索的詞語的聲音。