2011-04-12 8 views
2

저는 전문가 Wordpress PHP 개발자는 아니지만이 상황을 이해하지 못합니다. 배열을 포함하는 $ GLOBALS 변수에 정적 함수를 통해 변수를 전달합니다. 이 변수는 정적 함수에서 항상 NULL이지만, 변수가 들어가기 전에 유효한 유형이므로 잘 인쇄됩니다.PHP 함수 매개 변수는 항상 Wordpress에서 null입니다.

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가되어야합니다. –

+0

'$ badge_Id' 또는'$ badge_id'입니까? 몇 군데에서이 오류가 발생했습니다. 아마도 텍스트 편집기에서 더 명확한 글꼴을 사용하는 것을 고려해보십시오. –

+0

그건 대답, 잘못된 경우 !!!!!!! –

답변

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(); 
}