2011-04-12 42 views
2

我不是專家的Wordpress PHP開發人員,但我不瞭解這種情況。我通過一個靜態函數將變量傳遞給包含數組的$ GLOBALS變量。在靜態函數中的那個變量總是爲NULL,但在進入它之前,它是一個有效的類型並且打印正確。PHP函數參數在Wordpress中始終爲空

的functions.php

$badge_Id = get_comment_meta($comment->comment_ID,"badge_id", true); 

    if(strlen($badge_Id) > 0) { 
     Cisco_Rewards::add_badge_id($badge_id); 
       echo $badge_id; // PRINTS PERFECTLY 
    } 

rewards.php

class Cisco_Rewards { 

static function add_badge_id($badge_id) { 
     if(count($GLOBALS['badge_ids']) == 0) { 
      $GLOBALS['badge_ids'] = array(); 
     } 
     echo $badge_id; // WONT PRINT, IS NULL 
     array_push($GLOBALS['badge_ids'], $badge_Id); 
     print_r($GLOBALS['badge_ids']); // ALWAYS HAS NULL VALUES 
    } 
+3

你意識到你有$ badge_Id ...應該是$ badge_id – 2011-04-12 18:25:33

+0

'$ badge_Id'或'$ badge_id'?你在幾個地方犯了這個錯誤。也許可以考慮在文本編輯器中使用更清晰的字體。 – 2011-04-12 18:29:43

+0

這就是答案,不正確的情況!!!!!!! – 2011-04-12 20:35:53

回答

2

而不是

if(count($GLOBALS['badge_ids']) == 0) { 
    $GLOBALS['badge_ids'] = array(); 
} 
echo $badge_id; 

嘗試

var_dump($badge_id); // to check what it contains at the very beginning of the function 
if(!is_array($GLOBALS['badge_ids'])) { 
    $GLOBALS['badge_ids'] = array(); 
}