2013-08-30 126 views
-1

我想從外部文件訪問下面的方法(從公共類youth_teams)中的$ new_id變量,但我不知道如何。我已經從包含該方法的文件中正確地打印了lastInsertID,但也希望能夠訪問其他文件中的變量。從另一個文件訪問存儲在類中的變量

public function addTeam(
    $team_name, 
    &$error 
) { 
$query = $this->pdo->prepare('INSERT INTO `' . $this->table . '` (
    `team_name` 
) VALUES (
    :team_name 
)'); 
    $query->bindParam(':team_name', $team_name); 
    $query->execute(); 

    print_r($query->errorInfo()); 
    print $this->pdo->lastInsertID(); 
    $new_id = $this->pdo->lastInsertID(); 
    return $new_id;        
} 

下面是我從另一個文件試圖代碼:

sw::shared()->youth_teams->addTeam (
    $team_name, 
    $error 
); 

$temp_two = sw::shared()->youth_teams->addTeam->pdo->lastInsertID(); 
echo "new id: " . $temp_two . "<br>"; 

當然是不工作...什麼是訪問$ NEW_ID正確的路徑?

回答

1

它應該是:

$temp_two = sw::shared()->youth_teams->addTeam($team, $error); 

addTeam()是返回$new_id的功能,所以你需要用()調用它。

如果你真的希望能夠直接訪問$new_id,你可以聲明其全球:

public function addTeam(
    $team_name, 
    &$error 
) { 
    global $new_id; 
    ... 
+0

他也應該指定這個函數的參數 –

+0

有沒有辦法只取出$ new_id的值呢? – cpcdev

+0

我更新了我的原始代碼以顯示流程。在運行addTeam()方法後,我希望能夠獲取$ new_id值,然後使用它來運行另一種方法 – cpcdev

0

有什麼錯呢?

$sw = new sw(); 

$temp_two = $sw->addTeam($team, $error); 

echo "new id: " . $temp_two . "<br>"; 

如果你可以從外部文件中調用sw::shared(),您可以指定對象。

我也許我沒有完全理解你的代碼,如果沒有,請充分說明如下:

sw::shared()->youth_teams->addTeam($team, $error); 

// 1. What does the shared() method do? 
// 2. What is the youth_teams property? 

如果它的需要,我可能會建議直接將分配到addTeam()功能,並使用上述格式僅返回標識。